动画图像图标从触摸位置到右上角?

时间:2013-10-23 06:36:00

标签: android animation viewanimator

我正在开发Android onlineShopping应用程序。我必须应用一些动画。

  1. 购物车图片显示在屏幕的右上角。
  2. 项目清单在屏幕上显示每个项目,并带有“添加到购物车”按钮。
  3. 当用户按下此按钮时,我必须播放动画。
  4. 我有一个修复图像应该从触摸位置动画到 购物车图像放在屏幕的右上角。
  5. 请帮帮我。

    提前致谢。

    更新:

    我尝试将图像从一个地方移动到另一个地方。

    TranslateAnimation anim = new TranslateAnimation(0,0,200,200);              
                    anim.setDuration(3000);
    
                    img.startAnimation(anim);
    

    此图像我想从触摸位置动画到右上角。 enter image description here

3 个答案:

答案 0 :(得分:5)

最终你想用一个动画将视图从一个位置移动到另一个位置。

第1步: 获取该视图的初始位置

int fromLoc[] = new int[2];
v.getLocationOnScreen(fromLoc);     
float startX = fromLoc[0];
float startY = fromLoc[1];

第2步: 获得目的地位置

int toLoc[] = new int[2];
desti.getLocationOnScreen(toLoc);       
float destX = toLoc[0];
float destY = toLoc[1];

第3步: 创建一个管理动画的类

        public class Animations {
public Animation fromAtoB(float fromX, float fromY, float toX, float toY, AnimationListener l, int speed){


        Animation fromAtoB = new TranslateAnimation(
                Animation.ABSOLUTE, //from xType
                fromX, 
                Animation.ABSOLUTE, //to xType
                toX, 
                Animation.ABSOLUTE, //from yType 
                fromY, 
                Animation.ABSOLUTE, //to yType 
                toY
                 );

        fromAtoB.setDuration(speed);
        fromAtoB.setInterpolator(new AnticipateOvershootInterpolator(1.0f));


        if(l != null)
            fromAtoB.setAnimationListener(l);               
                return fromAtoB;
    }
}

第4步: 添加animationlistener并在所需视图上启动动画

     AnimationListener animL = new AnimationListener() {

        @Override
        public void onAnimationStart(Animation animation) {     
        }

        @Override
        public void onAnimationRepeat(Animation animation) {        
        }

        @Override
        public void onAnimationEnd(Animation animation) {
            //this is just a method call you can create to delete the animated view or hide it until you need it again.
            clearAnimation();       
        }
    };

//现在开始动画,如下所述:

Animations anim = new Animations();
    Animation a = anim.fromAtoB(startX, startY, destX, destY, animL,850);
    v.setAnimation(a);
    a.startNow();

我希望它会有所帮助!!

答案 1 :(得分:1)

我认为您正在寻找,您可以查看链接

link here

enter image description here

答案 2 :(得分:0)

检查这个例子希望这会对你有所帮助: http://developer.android.com/training/animation/zoom.html