Schiebeanimation mit Synchronisierungsproblemen bei mehreren Ansichten
Ich versuche eine Animation mit zwei Textansichten zu erstellen. Beide sind in einem relativen Layout. Die Funktionalität der Animation wird links angezeigt. Die Textansicht wird ein wenig nach links angezeigt und gleichzeitig wird die rechte Textansicht ein wenig nach links angezeigt. Ich habe versucht:
http://nineoldandroids.com/ und Standard Weg.
In beiden Fällen bekomme ich jedoch eine Lücke. Ich habe bereits eine Frage gestellt, bekomme aber keine positive Antwort:
Android-Slider-Animation ist nicht synchronisiert
Nineoldandroids-Code:
XML-Datei:
<RelativeLayout
android:layout_width="match_parent" android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@+id/target"
android:layout_marginTop="50dp">
<TextView
android:id="@+id/TextView01"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:background="#f00"
android:gravity="center"
android:text="RED"
android:textColor="#000" />
<Button
android:id="@+id/TextView02"
android:layout_width="50dp"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/TextView01"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/TextView01"
android:background="#0F0"
android:text="TXT"
android:visibility="invisible" />
</RelativeLayout>
MainActivity.java:
public class MainActivity extends Activity {
double counter = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.toggles);
final View target = findViewById(R.id.target);
final int duration = 5*1000;
final int duration1 = 300;
final View textView1 = findViewById(R.id.TextView01);
final View textView2 = findViewById(R.id.TextView02);
textView1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (counter == 0) {
textView2.setVisibility(View.VISIBLE);
ObjectAnimator.ofFloat(textView1, "translationX", 0, -50).setDuration(duration1).start();
ObjectAnimator.ofFloat(textView2, "translationX", 100, 0).setDuration(duration1).start();
counter++;
}
else {
ObjectAnimator.ofFloat(textView1, "translationX", -50,0).setDuration(duration1).start();
ObjectAnimator.ofFloat(textView2, "translationX", 0,100).setDuration(duration1).start();
counter--;
}
}
});
}
}
Wie kann ich es reparieren?
Andernfalls versuche ich, beide Textansichten in einem Layout zu platzieren, in dem sich die zweite Textansicht außerhalb des Bildschirms befindet, und mithilfe der Animation das gesamte Layout zu verschieben. Wie kann ich die XML so machen?