2017-07-26 58 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

尝试过它,但图像不在中心开始,它比中心更偏右一点。它看起来像是以左上角为中心 –