我有一张图片。在单击按钮时,图像上会发生翻译动画,使其向左滑动,最终只能看到图像的某个百分比。
有没有办法在翻译动画发生后获取图像的位置?我意识到我可以使用动画监听器并在OnAnimationEnd方法中执行某些操作。但是,我不知道该怎么办......
如何获取图像移动到的位置并将其设置为图像的布局参数?
我真的可以在这里使用你的帮助。
答案 0 :(得分:0)
假设您当前的图像位置是x,y。你在x方向100,y方向50上移动。所以你当前的位置是newx = x + 100,newy = y + 50。您将使用布局在onAnimationEnd方法中放置图像。
TranslateAnimation TAnimation=new TranslateAnimation(0, 100, 0, 50)
TAnimation.setDuration(2000);
TAnimation.setFillAfter(true);
Image.startAnimation(TAnimation);
TAnimation.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) {
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
RelativeLayout RL=(RelativeLayout)findViewById(R.id.rl);
param=new RelativeLayout.LayoutParams( LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
param.setMargins(x+100, y+50, 0, 0);
Image.setLayoutParams(param);
}
});
答案 1 :(得分:0)
我知道这个问题已经过时了,但它可能对某人有所帮助。 你可以添加:
animation.setFillAfter(true);
或在Xml集中:
fillAfter = "true"
就是这样。它将强制视图处于新位置