Анимировать значок изображения от сенсорного места до правого верхнего угла?
Я работаю над приложением Android onlineShopping. Мне нужно применить анимацию.
- Изображение корзины отображается в правом верхнем углу экрана.
- Список предметов отображается на экране каждого предмета с помощью кнопки "Добавить в корзину".
- Когда пользователь нажимает эту кнопку, я должен играть анимацию.
- У меня есть одно исправленное изображение, которое должно анимироваться из положения касания в изображение корзины, расположенное в правом верхнем углу экрана.
Пожалуйста, помогите мне.
Заранее спасибо.
Обновить:
Я пытался это переместить изображение из одного места в другое.
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