Android学习笔记 - 动画篇 (Animations)

1.什么是Animations
 Animations是安卓框架为我们提供的一系列动画效果,这些效果可以应用在绝大多数控件中

 

2.Animations的分类
 1.TweenedAnimations(渐变动画)
  该类动画提供了旋转、移动、伸展、淡出等等效果
  (1)Alpha:淡入淡出效果
  (2)Scale:绽放效果
  (3)Rotate:旋转效果
  (4)Translate:移动效果


 2.Frame by Frame Animtions(电影胶片效果)
  该类可以创建一个Drawable序列,这些Drawable可以按照指定时间间歇一个一个的显示

  
3.Animations的第一种使用方法
 1.创建一个AnimationSet对象
 2.根据需要创建相应的Animation对象
 3.根据软件动画的需求,为Animation对象设置相应的数据
 4.将Animation对象添加到AimationSet对象当中
 5.使用控件对象开始执行AnimationSet

 AnimationSet aniSet = new AnimationSet(true);
 AlphaAnimation alphaAni = new AlphaAnimation(1, 0); //参数:从X到Y的透明度
 alphaAni.setDuration(1000); //执行时间
 aniSet.addAnimation(alphaAni);
 imageView.startAnimation(aniSet);
 
 RotateAnimation rotateAni - new RotateAnimation(0, 360,
  Animation.RELATIVE_TO_PARENT, 1f,
  Animation.RELATIVE_TO_PARENT, 0f);
 
 ScaleAnimation scaleAni = new ScaleAnimation(1, 0.1f, 1, 0.1f,
  Animation.RELATIVE_TO_SELF, 0.5f,
  Animation.RELATIVE_TO_SELF, 0.5f);
  
 动画通用属性:
 setDuration(long durationMills) //执行时间
 setFillAfter(boolean fillAfter) //动画执行结束后,控件停留在结束的状态
 setFillBefore(boolean fillBefore) //动画执行结束后,控件恢复原来的状态
 setStartOffset(long startOffset) //设置动画执行之前的等待时间
 setRepeatCount(int repeatCount) //设置动画重复执行的次数

 

4.Animations的第二种使用方法
 1.在res文件夹下面新建一个名为anim的文件夹
 
 2.创建xml文件,并首先加入set标签
  <set xmlns:android="
http://schemas.android.com/apk/res/android"
   android:interpolator="@android:anim/accelerate_interpolator">
  </set>
  
 3.在该标签当中加入rotate,alpha,scale,translate标签
  <alpha
   android:formAlpha="0.1"
   android:toAlpha="1.0"
   android:duration="1000" />
   
 4.在代码当中使用AnimationUtils装载xml文件,并生成Animation对象
  Animation ani = AnimationUtils.loadAnimation(AniActivity.this,R.anim.alpha);
  imgAni.startAnimation(ani);

 

//完整示例

public class AnimationActivity extends Activity {
	private Button btnAlpha = null;
	private Button btnScale = null;
	private Button btnRotate = null;
	private Button btnTranslate = null;
	private ImageView imgAni = null;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.animation);

		btnAlpha = (Button) findViewById(R.id.btnAlpha);
		btnScale = (Button) findViewById(R.id.btnScale);
		btnRotate = (Button) findViewById(R.id.btnRotate);
		btnTranslate = (Button) findViewById(R.id.btnTranslate);
		imgAni = (ImageView) findViewById(R.id.imgAni);

		//淡入淡出效果
		btnAlpha.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				AnimationSet aniSet = new AnimationSet(true);
				AlphaAnimation ani = new AlphaAnimation(1, 0);
				ani.setDuration(1000);
				aniSet.addAnimation(ani);
				imgAni.startAnimation(aniSet);
			}
		});

		//绽放效果
		btnScale.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				AnimationSet aniSet = new AnimationSet(true);
				ScaleAnimation ani = new ScaleAnimation(1, 0, 1, 0);
				ani.setDuration(1000);
				aniSet.addAnimation(ani);
				imgAni.startAnimation(aniSet);
			}
		});

		//旋转效果
		btnRotate.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				AnimationSet aniSet = new AnimationSet(true);
				RotateAnimation ani = new RotateAnimation(0, 180);
				ani.setDuration(1000);
				aniSet.addAnimation(ani);
				imgAni.startAnimation(aniSet);
			}
		});

		//移动效果
		btnTranslate.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				AnimationSet aniSet = new AnimationSet(true);
				TranslateAnimation ani = new TranslateAnimation(0, 180, 0, 180);
				ani.setDuration(1000);
				aniSet.addAnimation(ani);
				imgAni.startAnimation(aniSet);
			}
		});
	}
}


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值