【发布时间】:2014-06-21 08:20:05
【问题描述】:
我正在尝试在图像视图上从屏幕底部到中间进行平移动画。动画完成后,我希望图像视图留在那里。我不想要 setFillAfter(true) 因为我想要更新 imageview 的实际位置。
我目前通过 2 个图像视图(一个在动画开始处,一个在结束处)来做到这一点,并且我使用 setVisibility 来实现这一点。这是做事的正确方法吗?这是我使用的代码:
<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);
【问题讨论】:
-
在你的 xml 布局中,你应该把你正在制作动画的 ImageView 放在你想要它去的位置,在动画之前。在启动动画时,将其翻译,使其看起来像是来自您希望它来自的地方。
-
@JosephusVillarey 嗯,好建议!
标签: java android imageview android-animation