Mam android translate Animation. Mam ImageView z losowo wygenerowaną pozycją (next1, next2). Dzwonię do pustki co 3 sekundy. Generuje nową pozycję widoku, a następnie tworzy animację i przenosi widok do miejsca docelowego. Animacja tłumaczenia ma zaimplementowaną animacjęListener. Po zakończeniu animacji przenosimy Trwale Widok na nową pozycję (w trybie OnAnimationEnd). Mój problem polega na tym, że pozycja animacji nie odpowiada ustawieniu pozycji layoutParams. Po zakończeniu animacji przeskok do nowej pozycji, która wynosi około 50-100 pikseli. Myślę, że pozycje powinny być takie same, ponieważ w obu sytuacjach używam tych samych wartości (next1, next2). Czy możesz wskazać mi drogę do znalezienia rozwiązania? Android translate animation - permanently move Wyświetl nową pozycję za pomocą AnimationListener
FrameLayout.LayoutParams pozice_motyl = (FrameLayout.LayoutParams) pozadi_motyl.getLayoutParams();
TranslateAnimation anim = new TranslateAnimation(Animation.ABSOLUTE,pozice_motyl.leftMargin, Animation.ABSOLUTE, next1, Animation.ABSOLUTE, pozice_motyl.topMargin, Animation.ABSOLUTE, next2);
anim.setDuration(1000);
anim.setFillAfter(true);
anim.setFillEnabled(true);
anim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(100, 100);
layoutParams.leftMargin = (int)(next1);
layoutParams.topMargin = (int)(next2);
pozadi_motyl.setLayoutParams(layoutParams);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
pozadi_motyl.startAnimation(anim);
Oto układ XML:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/pozadi0"
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
android:background="@drawable/pozadi2"
>
<LinearLayout
android:id="@+id/pozadi_motyl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<ImageView android:id="@+id/obrazek_motyl"
android:src="@drawable/motyl"
android:layout_width="100dip"
android:layout_height="100dip"
/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RelativeLayout
android:id="@+id/obrazek_pozadi0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView android:id="@+id/zaba_obrazek0"
android:src="@drawable/zaba_obrazek"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
/>
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<cz.zaba.Spojnice
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
</FrameLayout>
proszę zobaczyć moją odpowiedź, jej bezpośrednio powiązane: https://stackoverflow.com/a/47593484/2606290 – Fer