Анимировать значок изображения от сенсорного места до правого верхнего угла?

Я работаю над приложением Android onlineShopping. Мне нужно применить анимацию.

  1. Изображение корзины отображается в правом верхнем углу экрана.
  2. Список предметов отображается на экране каждого предмета с помощью кнопки "Добавить в корзину".
  3. Когда пользователь нажимает эту кнопку, я должен играть анимацию.
  4. У меня есть одно исправленное изображение, которое должно анимироваться из положения касания в изображение корзины, расположенное в правом верхнем углу экрана.

Пожалуйста, помогите мне.

Заранее спасибо.

Обновить:

Я пытался это переместить изображение из одного места в другое.

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

                img.startAnimation(anim);

Это изображение я хочу анимировать от позиции касания до правого верхнего угла.введите описание изображения здесь

3 ответа

В конечном итоге вы хотите переместить вид из одной позиции в другую с помощью анимации.

Шаг 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();

Я надеюсь, что это будет полезно!

Я думаю, что вы точно ищете, вы можете проверить ссылку

ссылка здесь

Проверьте этот пример, надеюсь, это поможет вам: http://developer.android.com/training/animation/zoom.html

Другие вопросы по тегам