2014-11-06 266 views
0

我有一個類似於Google環聊的聊天客戶端。在底部,我有一個用於消息輸入的編輯文本框,右邊有發送按鈕。我可以根據用戶是否使用addTextChangedListener在消息框中有文本來爲發送按鈕設置動畫。但發送按鈕的初始位置應該是關閉的,因爲用戶還沒有輸入任何文本。一旦用戶輸入文本,發送按鈕應該從右側滑入。我需要幫助來弄清楚如何將發送按鈕初始定位到屏幕外並將其動畫到消息編輯文本旁邊的屏幕上。Android動畫開始位置

要動畫發送按鈕,我用財產動畫...

send.animate()XBY(-send.getWidth()).setDuration(1000)。

謝謝大家的幫助!

回答

2

如果您打算使用ObjectAnimators,那麼您可以簡單地使用用於創建一個的靜態方法。

Object target = send 
int from = -send.getWidth() 
int to = 0 
ObjectAnimator slider = ObjectAnimator.ofFloat(target, "x", from, to); 
slider.setDuration(1000) 
slider.start() 

初始位置可以手動通過簡單地調用send.setX(-send.getWidth())直接,或最初設定的可見到View.Invisible,然後在AnimationListener設置View.Visible放置。

編輯:

如果您需要使用的大小,你可以發佈一個Runnable的視圖,它會立即運行作爲視圖到位。

send.post(new Runnable() { 
    @Override 
    public void run() { 
     int from = -send.getWidth() 
     int to = 0 
     ObjectAnimator slider = ObjectAnimator.ofFloat(send, "x", from, to); 
     slider.setDuration(1000) 
     slider.start() 
    } 
}); 

在這次火災發生前查看我的閃光燈的可能性很小。要解決此問題,您可以將其初始可見性設置爲View.INVISIBLE,然後在Runnable中將其設置爲View.VISIBLE

+0

感謝您的幫助,但初始寬度始終爲0。所以我不能使用SetX()方法。 – George 2014-11-06 19:54:59

+0

使用post方法。我會編輯。 – DeeV 2014-11-06 21:42:07

+0

send.post()適合我。非常感謝你的幫助! – George 2014-11-06 22:10:32