2014-09-20 5 views
0

Я хочу создать перевод анимации по отношению к другим объектам на экранеКак перевести вверх

if(vipUpSet == null) { 
    Rect contactUsLocation = new Rect(); 
    Rect infoLocation = new Rect(); 
    Rect vipLocation = new Rect(); 
    contactUs.getGlobalVisibleRect(contactUsLocation); 
    info.getGlobalVisibleRect(infoLocation); 
    vip.getGlobalVisibleRect(vipLocation); 
    vipUp = new TranslateAnimation(vipLocation.left, contactUsLocation.right + 20, vipLocation.top, contactUsLocation.top); 
    vipUpSet = new AnimationSet(true); 
    vipUpSet.setInterpolator(new LinearInterpolator()); 
    vipUpSet.addAnimation(scaleDown); 
    vipUpSet.addAnimation(vipUp); 
    vipUpSet.setDuration(1000); 
    vipUpSet.setFillAfter(true); 
    } 

enter image description here

У меня есть две кнопки в верхней части экрана под названием ContactUS и информации

Я хочу, чтобы vip взлетел туда, где он находится, и с правой стороны от кнопки контакта

текущая настройка делает вид disa ppear и летите снизу, я хочу, чтобы он летал из своего текущего состояния.

Как это сделать?

+0

Я обновил свой ответ –

ответ

0
  • Вы используете неверные дели.

Это должно сделать:

float deltaY = contactUsLocation.top - vipLocation.top; 
vipUp = new TranslateAnimation(0.f, 0.f, 0.f, deltaY); 
// ... same ... 

Этот код будет смещаться ContactUS от его текущего положения до того, где она расположена горизонтально с VIP (но без горизонтального перевода).

Начальная дельта, установленная на 0.f, означает, что View начинает оживлять свое текущее положение. Последними дельтами являются смещения перевода.

Будьте также осторожны, чтобы анимация scaleDown не мешала переводу.

 Смежные вопросы

  • Нет связанных вопросов^_^