Android动画循环弹动cycleInterpolator
Android动画中cycleInterpolator定义属性android:cycles可以是一个动画反复执行,从而达到一个动画左右、垂直或者其他如斜方向上的反复弹动(摆动)。
写一个测试的Activity:
package zhangphil.anim;
import android.app.Activity;
import android.os.Bundle;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView image1=(ImageView) findViewById(R.id.image1);
image1.startAnimation(AnimationUtils.loadAnimation(this, R.anim.shake1));
ImageView image2=(ImageView) findViewById(R.id.image2);
image2.startAnimation(AnimationUtils.loadAnimation(this, R.anim.shake2));
}
}
image1和image2分别执行动画shake1.xml和shake2.xml 。
shake1.xml:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="3000"
android:fromXDelta="0.0"
android:toXDelta="100.0"
android:interpolator="@anim/cycles"/>
shake2.xml:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="3000"
android:fromYDelta="0.0"
android:toYDelta="100.0"
android:interpolator="@anim/cycles"/>
shake1.xml使动画水平移动,shake2.xml使动画垂直方向移动。
shake1.xml和shake2.xml都分别用到cycles.xml:
<?xml version="1.0" encoding="utf-8"?>
<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
android:cycles="20" />
android:duration="3000"与android:cycles="20"联合表示在3秒内将动画执行20次。
备注:shake1.xml,shake2.xml和cycles.xml均放在res/anim目录下。