Android基础动画
- Tween Animation 变换动画
- Frame Animation 帧动画
- Layout Animation 布局动画
- Property Animation 属性动画
Tween Animation 变换动画
- Alpha:渐变透明度动画
- Scale:渐变尺寸缩放动画
- Translate:位置移动动画
- Rotate :旋转动画
共同属性
- Duration:动画持续时间
- fillAfter:设置为true,动画转化在动画结束后被应用
fillBefore:设置为true,动画转化在动画开始前被应用- interPolator:动画插入器(加速、减速插入器)
- repeatMode:动画重复次数
- repateMode:顺序重复/倒序重复
- startOffset:动画之间的时间间隔
Animation实现方式
- 配置文件(/res/anim)--alpha、scale、translate、rotate
- Java代码实现-----AlphaAnimation、ScaleAnimation、TranslateAnimation、RotateAnimation
Example(Java代码创建)
AlphaAnimation alpha=new AlphaAnimation(0.1f,1.0f);
//设置动画时间为5秒
alpha.setDuration(5000);
//开始播放
img.startAnimation(alpha);
Example(加载布局文件)
Animation scale=AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale_anim);
//开始动画
img.startAnimation(scale);
AlphaAnimation (透明度动画)
- fromAlpha:动画起始时透明度
- toAlpha:动画终止时的透明度
0.0 表示完全透明
1.0 表示完全不透明
ScaleAnimation(缩放动画)
- fromX,toY分别是起始和结束时X坐标上的伸缩尺寸
- fromY,toY分别是起始和结束时Y坐标上的伸缩尺寸
- pivotX,pivotY分别为伸缩动画相对于x,y坐标开始的位置
TranslateAnimation(位移动画)
- fromXDelta,fromYDelta分别是起始时X,Y的坐标
- toXDelta,toYDelta分别是X,Y的坐标
RotateAnimation(旋转动画)
- fromDegress 起始的角度
- toDegress 终止的角度
- pivotX,pivotY分别为旋转动画相对于x,y的坐标开始位置
组合动画
- 续播一 第一个动画A结束时监听AnimationListener ,在onAnimationEnd触发时开始动画B
- 续播二 写一个动画集AnimationSet,在其中定义动画A和B,为动画B设置startOffset,其值就是前一个动画播放的时间
循环闪烁
- 利用Animation的setRepeatCount、setRepeatMode来实现动画循环。
AlphaAnimation alpha=new AlphaAnimation(0.1f,1.0f);
alpha.setDuration(100);
alpha.setRepeatCount(10);
//倒序重复:REVERSE 正序重复RESTART
alpha.setRepeatMode(Animation.REVERSE);
img.startAnimation(alpha);
Activity切换动画:
- 使用overridePendingTransition方法
- 参数:第二个activity进入动画 、第一个activity退出时的动画
布局动画
- LayoutAnimation
为ViewGroup添加动画、使用LayoutAnimationController
LayoutAnimationController lay=new LayoutAnimationController();
lay.setOrder(LayoutAnimationController.ORDER_RANDOM);;
listview.setLayoutAnimation(lay);
listview.startLayoutAnimation();
FrameAnimation(逐帧动画)
使用animation_list标签来分组一个item的标签集合,定义要显示的图片。指定显示他的时间
网友评论