ImageView的无限动画来自屏幕外部

时间:2015-01-30 16:23:25

标签: android

我想拥有ImageView的无限动画。 ImageView的起始位置应位于屏幕的顶部,目的地应位于屏幕外的底部。

是否有机制来实现无限动画,我可以将ImageView放在屏幕之外吗?

1 个答案:

答案 0 :(得分:0)

将相对布局左侧或右侧的imageView保存为图像的宽度。所以它将不在屏幕上

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="20dp"
    android:layout_height="20dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_marginRight="-20dp"
    android:src="@drawable/test" />

然后你可以使用动画。 的 RES /动画/ rotatemove.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:repeatCount="infinite"
    android:repeatMode="restart" >

    <rotate
        android:duration="600"
        android:fromDegrees="0"
        android:interpolator="@android:anim/cycle_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="infinite"
        android:repeatMode="restart"
        android:toDegrees="360" />

    <translate
        android:duration="800"
        android:fromYDelta="0%p"
        android:toYDelta="100%p"
        android:repeatCount="infinite"
        android:repeatMode="restart" />

</set>

现在在您的活动中使用

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Animation anim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotatemove);
        ImageView iv = (ImageView) findViewById(R.id.test);
        iv.startAnimation(anim);

    }