2014-09-20 27 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

我有兩個按鈕在屏幕的所謂聯繫我們的頂部和信息

我想要vip從它的位置起飛,並且位於contactUs按鈕的右側

當前設置,使視圖disa從最下面飛進來,我希望它從目前的狀態飛起來。

我該怎麼做?

+0

我更新了我的答案 – 2014-09-20 14:48:15

回答

0
  • 您正在使用錯誤的增量。

這應該這樣做:

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

這段代碼從當前位置轉移聯繫我們最多在那裏與VIP(但沒有翻譯水平)水平對齊。

初始增量設置爲0.f表示View從其當前位置開始動畫。最後的三角洲是翻譯的補償。請注意0​​動畫不會干擾翻譯。