實現用一張背景圖作循環從左往右平移動畫。 java
1。 實現兩個animation xml文件,一個起始位置在-100%p ,一個在0%p。設置repeat屬性爲循環,重複。 android
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <translate android:fromXDelta="0%p" android:toXDelta="100%p" android:repeatMode="restart" android:interpolator="@android:anim/linear_interpolator" android:repeatCount="infinite" android:duration="30000" /> </set>
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <translate android:fromXDelta="-100%p" android:toXDelta="0%p" android:repeatMode="restart" android:interpolator="@android:anim/linear_interpolator" android:repeatCount="infinite" android:duration="30000" /> </set>
2。在view的layout裏面放兩個同樣的view作背景,view的動畫分別對應上面那兩個animation。 動畫
<ImageView android:id="@+id/animation_top_left" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/logo" android:src="@drawable/home_animation_bg" /> <ImageView android:id="@+id/animation_top_right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/logo" android:src="@drawable/home_animation_bg" />
Animation anim = AnimationUtils.loadAnimation(mContext, R.anim.home_animation); ImageView animationTopRightView = (ImageView)this.findViewById(R.id.animation_top_right); animationTopRightView.startAnimation(anim);
Animation anim2 = AnimationUtils.loadAnimation(mContext, R.anim.home_animation2); ImageView animationTopLeftView = (ImageView)this.findViewById(R.id.animation_top_left); animationTopLeftView.startAnimation(anim2);