Android动画循环弹动cycleInterpolator

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目录下。




你可能感兴趣的:(android)