在翻译动画后获取图像的绝对位置

时间:2011-11-23 05:32:03

标签: android android-animation

我有一张图片。在单击按钮时,图像上会发生翻译动画,使其向左滑动,最终只能看到图像的某个百分比。

有没有办法在翻译动画发生后获取图像的位置?我意识到我可以使用动画监听器并在OnAnimationEnd方法中执行某些操作。但是,我不知道该怎么办......

如何获取图像移动到的位置并将其设置为图像的布局参数?

我真的可以在这里使用你的帮助。

2 个答案:

答案 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"

就是这样。它将强制视图处于新位置