2014-02-10 82 views
1

我正在研究翻譯動畫,並且遇到了這個問題。Android - TranslateAnimation與圖像位置相關

imgLogo = new ImageButton(this); 
imgLogo.setLayoutParams(new ViewGroup.LayoutParams(100, 100)); 
imgLogo.setBackgroundResource(R.drawable.twitter); 
imgLogo.setX(0.0f); 
imgLogo.setY(0.0f); 
layout.addView(imgLogo); 

final TranslateAnimation moveRight = new TranslateAnimation(0.0f, 410.0f,0.0f, 0.0f); 

moveRight.setFillAfter(true); 
moveRight.setFillEnabled(true); 
moveRight.setDuration(1000); 

動畫對此代碼正常工作,圖像從(0,0) - >(410,0)移動。

但是,當我改變圖像的位置x = 0; Y = 800。然後運行動畫,圖像消失在(0,800)並出現在(410,800),它不再移動。

任何人都可以幫助我解決這個問題嗎?謝謝。

+0

你能指出你想實現這個動畫是什麼?此外,我不認爲使用屏幕的像素大小來生成動畫的最佳方法 – GhostDerfel

+0

我希望圖像從左到右或從右到左在任何點移動。起初,我試圖使用XML,但它沒有工作。在我的代碼中,圖像在(0,0)處,並且它沿着(410,0)移動。如果位置是(0,800),那麼它應該移動到(410,800),對吧?但它只是消失在(0,800),並出現在(410,800)。 :( –

+0

試試我的答案,如果您認爲我的答案對您而言不完整我可以發佈更完整的代碼,但我認爲您將只能使用該代碼行 – GhostDerfel

回答

0

嘗試建立一個動畫的時候,只是一個例子使用RELATIVE_TO_PARENT的東西從向左或從左向右向右滑動:

Animation slide = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, right?+1.0f:-1.0f,Animation.RELATIVE_TO_PARENT, 0.0f,Animation.RELATIVE_TO_PARENT, 0.0f,Animation.RELATIVE_TO_PARENT, 0.0f); 
+0

謝謝您的回答。我嘗試了你的位置(0,0)代碼。 Animation slide = new TranslateAnimation(Animation.RELATIVE_TO_PARENT,right?+ 1.0f:-1.0f,Animation.RELATIVE_TO_PARENT,0.0f,Animation.RELATIVE_TO_PARENT,0.0 f,Animation.RELATIVE_TO_PARENT,0.0f); 它在移動,但是在位置(0,800),它失敗了 –

+0

我找到了解決方案,它與圖像的x,y有關。 setMargin()而不是使用setX和setY :) –

+0

不要忘記發佈你的答案在這裏幫助其他人提出同樣的問題 – GhostDerfel