使用 AnimationUtils.loadAnimation() 載入 XML 定義的平移動畫會閃爍;改用程式碼 `new TranslateAnimation(...)` 則正常。
<translate xmlns:android="..."
android:duration="2000"
android:fillAfter="true"
android:fromXDelta="0%" android:toXDelta="-100%" />
Animation anim = AnimationUtils.loadAnimation(ctx, R.anim.xxx);
image.startAnimation(anim);
TranslateAnimation ta = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, -1f,
Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 0f);
ta.setDuration(2000);
ta.setFillAfter(true);
image.startAnimation(ta);
image.animate().translationX(-image.getWidth()).setDuration(2000).withEndAction(() -> {
image.setVisibility(View.GONE);
}).start();
更簡潔、效能更好、不易閃爍。
單一動畫無需包裝在 `AnimationSet` 中,直接用 `TranslateAnimation` 或 `ViewPropertyAnimator` 即可。