Android开发之动画(Animation)——Tween动画

本文深入探讨了Android开发中Tween动画的概念、作用及应用实例,通过使用XML和编码方式创建并实现了四种基本动画类型:透明度变化、旋转、尺寸缩放和位置移动,并展示了动画组合的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    Tween动画,通过对 View 的内容进行一系列的图形变换 (包括平移、缩放、旋转、改变透明度)来实现动画效果。动画效果的定义可以采用XML来做也可以采用编码来做。

    Tween动画有4种类型:

 

 

例子:

布局文件




    

        

    

        
    


 

核心代码:


public class DemoActivity extends Activity {
	private ImageView iv;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		iv = (ImageView) this.findViewById(R.id.iv);
	}

	/**
	 * 透明度变化的动画
	 */
	public void alpha(View view) {
		// AlphaAnimation aa = new AlphaAnimation(0.0f, 1.0f);
		// aa.setDuration(2000);
		Animation aa = AnimationUtils.loadAnimation(this, R.anim.alpha);
		iv.startAnimation(aa);

	}

	/**
	 * 旋转变化的动画
	 */
	public void rotate(View view) {
		// RotateAnimation ra = new RotateAnimation(0, 90);
		// RotateAnimation ra = new RotateAnimation(0, 90,
		// (iv.getRight()+iv.getLeft())/2, (iv.getTop()+iv.getBottom())/2);
		// 怎么去定义旋转的中间位置?
		// RotateAnimation ra = new RotateAnimation(0, 90, 0.5f, 0.5f);
		// ra.setDuration(2000);
		Animation ra = AnimationUtils.loadAnimation(this, R.anim.rotate);
		iv.startAnimation(ra);
	}
	/**
	 * 尺寸缩放的动画
	 */
	public void scale(View view) {
		// ScaleAnimation sa = new ScaleAnimation(0.0f, 2.0f, 0.0f, 2.0f);
		// sa.setDuration(2000);
		Animation sa = AnimationUtils.loadAnimation(this, R.anim.scale);
		iv.startAnimation(sa);
	}
	/**
	 * 位置移动的动画
	 */
	public void translate(View view) {
		// TranslateAnimation ta = new TranslateAnimation(0, 200, 0, 200);
		// ta.setDuration(2000);
		Animation ta = AnimationUtils.loadAnimation(this, R.anim.translate);
		iv.startAnimation(ta);
	}

	/**
	 * 动画的组合
	 */
	public void set(View view) {
		// AlphaAnimation aa = new AlphaAnimation(0.0f, 1.0f);
		// aa.setDuration(2000);
		// RotateAnimation ra = new RotateAnimation(0, 90);
		// ra.setDuration(2000);
		// TranslateAnimation ta = new TranslateAnimation(0, 200, 0, 200);
		// ta.setDuration(2000);
		// AnimationSet set = new AnimationSet(false);
		// set.addAnimation(ta);
		// set.addAnimation(ra);
		// set.addAnimation(aa);
		// iv.startAnimation(set);
		Animation aa = AnimationUtils.loadAnimation(this, R.anim.set);
		iv.startAnimation(aa);
	}

}

 

alpha.xml文件





 
rotate.xml  scale.xml  translate.xml 就不上代码了
 
set.xml文件



    

    

    


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值