Android中Tween动画和Frame动画实例

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

Tween动画由四种类型组成

alpha
渐变透明度动画效果
scale
渐变尺寸伸缩动画效果
translate
画面转换位置移动动画效果
rotate
画面转移旋转动画效果
res目录下新建anim创建Tween.xml

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

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

示例:

Frame.xml

<?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>
main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <ImageView
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:src="@anim/frame"
    	android:onClick="go"
    	/>
</LinearLayout>

Activity:

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



您想快速达成您的目标和实现梦想吗?请加QQ:673220883 每天为您提供了大量励志,视频,销售,管理等-经典文章,免费学习。此QQ空间已改变了千万人的命运。陈安之和您一起开始您的梦想之旅!陈安之老师全国课程报名热线:131 6187 6870 

 

精彩分享: 如果你现在没有目标,对未来很迷茫、来看下

精彩分享: 俞洪敏:一辈子只做一件事 不要想太多 

精彩分享: 男人的这一百个秘密,我不说你一辈子也不可能知道!

精彩分享: 人临终前最遗憾的25件事,别让这些遗憾 变成你的遗憾



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傅荣康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值