Bildansicht nach Animation verschieben (Position aktualisieren)
Ich versuche, eine Übersetzungsanimation in einer Bildansicht von unten nach Mitte des Bildschirms zu erstellen. Nach Abschluss der Animation möchte ich, dass die Bildansicht dort bleibt. Ich möchte nicht setFillAfter (true), da die aktuelle Position der Bildansicht aktualisiert werden soll.
Ich mache es derzeit, indem ich 2 Bildansichten habe (eine am Anfang der Animation und eine am Ende) und ich spiele mit der setVisibility, um dies zu erreichen. Ist das der richtige Weg, um Dinge zu tun? Hier ist der Code, den ich verwendet habe:
<ImageView
android:id="@+id/ivStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:background="@drawable/typer_step_1"
android:gravity="center"
/>
<ImageView
android:id="@+id/ivMiddle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/typer_step_1"
android:gravity="center"
android:visibility="invisible"
/>
TranslateAnimation translate = new TranslateAnimation(0, mDestLoc1[0]-mSrcLoc1[0], 0, mDestLoc1[1]-mSrcLoc1[1]);
translate.setDuration(2000);
translate.setAnimationListener(new AnimationListener(){
@Override
public void onAnimationStart(Animation animation) {}
@Override
public void onAnimationEnd(Animation animation) {
ivMiddle.setVisibility(View.VISIBLE)
ivStart.setVisibility(View.INVISIBLE)
}
@Override
public void onAnimationRepeat(Animation animation) {}
});
ivStart.startAnimation(translate);