常见的动画分为两类:
一、属性动画
二、帧动画
今天主要记一下四中属性动画
旋转:RotateAnimation
渐变色:AlphaAnimation
移动:TranslateAnimation
缩放:ScaleAnimation
下面直接上代码
@Override
public void onClick(View v) {
//1创建AnimationSet对象//true 所有在这集的动画应该使用这个AnimationSet相关插补器 false 每个动画应该利用自身的内插
AnimationSet animationSet = new AnimationSet(true);
switch (v.getId()) {
case R.id.xz: {
//创建旋转动画对象
RotateAnimation rotateAnimation = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rotateAnimation.setDuration(1000);
//设置时间
rotateAnimation.setRepeatCount(10);
//动画播放次数
animationSet.addAnimation(rotateAnimation);
//将动画模式添加到AnimationSet对象 用于执行这个动画
imageView.startAnimation(animationSet);
//图片进行动画
// imageView.setAnimation(animationSet); // 这里不要set动画 要开启 开启 我一开始一直不执行动画 感觉没错啊原来用了set
break;
}
case R.id.drdc: {
//创建渐变色动画
AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0); alphaAnimation.setDuration(500); alphaAnimation.setRepeatCount(10);
animationSet.addAnimation(alphaAnimation);
imageView.startAnimation(animationSet);
break;
}
case R.id.yd: {
//创建移动动画
TranslateAnimation translateAnimation = new TranslateAnimation(0, 200, 0, 0); translateAnimation.setDuration(3000); translateAnimation.setRepeatCount(10);
//设置重复次数
translateAnimation.setRepeatMode(Animation.REVERSE);
//设置反方向执行
animationSet.addAnimation(translateAnimation);
imageView.startAnimation(translateAnimation);
break;
}
case R.id.sf: {
//创建缩放动画
ScaleAnimation scaleAnimation = new ScaleAnimation( 0, 1f, 0, 1f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
scaleAnimation.setDuration(1000);
scaleAnimation.setRepeatCount(10);
animationSet.addAnimation(scaleAnimation);
imageView.startAnimation(animationSet);
break;
}
}
}
网友评论