2017-07-26 72 views
1

我在RelativeLayout中有Imageview。它應該從屏幕的中心(父母)開始,然後轉到特定的點。實際上我使用xml。 任何解決方案?在Android中翻譯動畫 - 從屏幕中心開始

我的動畫XML的

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fillAfter="false"> 

    <translate 
     android:fromYDelta="0%p" 
     android:fromXDelta="0%p" 
     android:toYDelta="0%" 
     android:toXDelta="0%" 
     android:duration="1000" 
     android:pivotX="0%p" 
     android:pivotY="0%p"/> 

    <scale xmlns:android="http://schemas.android.com/apk/res/android" 
     android:fromXScale="432px" 
     android:toXScale="100%" 
     android:fromYScale="450px" 
     android:toYScale="100%" 
     android:duration="1000" 
     android:pivotX="0%p" 
     android:pivotY="0%p" /> 
</set> 

我和100%p, 50%p, 0%p, 100, 50, 0, 100%, 50% and 0%試圖在fromYDeltafromXDelta。沒有用! 現在我很困惑! 感謝您的時間和幫助

編輯:

A picture to explain what the Animation should do

+0

你有沒有試過這一個https://stackoverflow.com/questions/10276251/how-to-animate-a-view-with-translate-animation-in-android?answertab=votes#tab-top? –

+0

這是橫幅中的元素,它是頂部(32dp marginTop)和中心。但圖像需要留在橫幅 –

+0

是的,我試了一下,但後來我需要想辦法把它放回橫幅 –

回答

0

在動畫文件夾中添加此:

translateAnim= AnimationUtils.loadAnimation(getApplicationContext(), 
      R.anim.translate_anim); 
imageView.startAnimation(translateAnim); 

這將:

<translate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXDelta="50%p" android:fromYDelta="50%p" 
    android:toXDelta="50%p" android:toYDelta="0%p" 
    android:duration="1000" 
    android:fillAfter="true" /> 

在這樣的代碼實現此從中心移動圖像到頂部。

+0

我可以改變這個 android:toXDelta =「50%p」android:toYDelta =「 0%p「 轉換爲 android:toXDelta =」100%「android:toYDelta =」100%「 –

+0

完全取決於您的目的,您希望如何在屏幕上翻譯對象。 –

+0

嘗試過它,但圖像不在中心開始,它比中心更偏右一點。它看起來像是以左上角爲中心 –