Android中Tween动画和Frame动画实例

Animation主要有两种动画模式:Tween动画和Frame动画

Tween动画由四种类型组成

alpha 渐变透明度动画效果
scale 渐变尺寸伸缩动画效果
translate 画面转换位置移动动画效果
rotate 画面转移旋转动画效果
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
	<!-- 透明 -->
	<alpha
		android:fromAlpha="1"
		android:toAlpha="0" 
		android:duration="3000"
		/>
	<!-- 旋转 -->
	<rotate
		android:fromDegrees="0"
		android:toDegrees="360"
		android:pivotX="50%"
		android:pivotY="50%" 
		android:duration="3000" 
		/>
	<!-- 缩放 -->
	<scale
        android:fromXScale="1" 
        android:fromYScale="1" 
        android:toXScale="3" 
        android:toYScale="3" 
        android:pivotX="0"
        android:pivotY="0"
        android:duration="3000" 
        />
	<!-- 移动 -->
	<translate
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="50%p"
        android:toYDelta="50%p" 
		android:duration="3000" 
        />
</set>

以上每个动画效果可放在不同的xml文件中已方便查看效果

 

下边是Activity中调用动画

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		imageView = (ImageView) findViewById(R.id.img);
	}

	public void onClick(View view) {
		Animation animation = null;
		switch (view.getId()) {
			case R.id.alpha:
				animation = AnimationUtils.loadAnimation(this, R.anim.alpha);
				break;
			case R.id.scale:
				animation = AnimationUtils.loadAnimation(this, R.anim.scale);
				break;
			case R.id.translate:
				animation = AnimationUtils.loadAnimation(this, R.anim.translate);
				break;
			case R.id.rotate:
				//animation = AnimationUtils.loadAnimation(this, R.anim.rotate);
				//令一种方式JavaCode中 创建RotateAnimation
				animation = new RotateAnimation(0, 180, RotateAnimation.RELATIVE_TO_SELF, 0.5f, RotateAnimation.RELATIVE_TO_SELF, 0.5f);
				animation.setDuration(3000);
				break;
			case R.id.all:
				animation = AnimationUtils.loadAnimation(this, R.anim.Tween);
				break;
		}
		//启动动画
		imageView.startAnimation(animation);
	}

 

Tween动画由四种类型组成

扫描二维码关注公众号,回复: 566255 查看本文章

帧动画是有多张图片组成,多张图片循环。

示例:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
    <item android:drawable="@drawable/p1" android:duration="200" />
    <item android:drawable="@drawable/p2" android:duration="200" />
    <item android:drawable="@drawable/p3" android:duration="200" />
    <item android:drawable="@drawable/p4" android:duration="200" />
    <item android:drawable="@drawable/p5" android:duration="200" />
    <item android:drawable="@drawable/p6" android:duration="200" />
    <item android:drawable="@drawable/p7" android:duration="800" />
    <item android:drawable="@drawable/p8" android:duration="200" />
    <item android:drawable="@drawable/p9" android:duration="200" />
    <item android:drawable="@drawable/p10" android:duration="200" />
    <item android:drawable="@drawable/p11" android:duration="200" />
</animation-list>

 

	public void go(View view) {
		// 获取ImageView
		ImageView imageView = (ImageView) view;
		// 获取ImageView上面的动画图片
		AnimationDrawable drawable = (AnimationDrawable) imageView.getDrawable();
		// 动画开始
		drawable.start();
	}

 

猜你喜欢

转载自haiyang08101.iteye.com/blog/2085235