Android中Tween动画和Frame动画实例

本文详细介绍了Android中的两种动画模式:Tween动画和帧动画。Tween动画包括透明度、尺寸伸缩、位置移动和旋转等效果;帧动画则通过多张图片循环播放实现动画效果。文中提供了XML配置示例及Activity中动画调用的Java代码。
摘要由CSDN通过智能技术生成

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动画由四种类型组成

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

示例:

<?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();
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值