从外部屏幕移动imageView

时间:2016-09-13 23:48:39

标签: android imageview android-animation

我正在尝试动画+淡入动画到imageView。 我希望它从屏幕外滑动到屏幕中间。 这就是我的尝试:

活动xml:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true">

    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/city"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="false"
        android:scaleType="fitEnd"
        android:id="@+id/cityImage" />

</RelativeLayout>

move.xml

<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fillAfter="true">

<translate
    android:fromYDelta="-70%p"
    android:toYDelta="0%p"
    android:duration="1500" />
</set>

移动功能:

public void move(){
    ImageView image = (ImageView)findViewById(R.id.cityImage);
    Animation animation1 = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.move);
    image.startAnimation(animation1);
}

正如你所看到的那样,我认为javascript的做法是-70%p,但它似乎不适用于android。你可以用另一种方式向我推荐吗?

1 个答案:

答案 0 :(得分:3)

删除你的move.xml

然后加入

public void move(){
    ImageView img_animation = (ImageView) findViewById(R.id.cityImage);

    TranslateAnimation animation = new TranslateAnimation(600.0f, 0.0f, 0.0f, 0.0f);         
    animation.setDuration(5000);      

    img_animation.startAnimation(animation);  
}

从右移动到中间

Omg 600太多了,只需使用100 in inXdelta