Android动画Animation

动画类型

Android 中的动画有一般的补间动画,逐帧动画,属性补间动画(3.0后的)

一般动画
AnimatorSet - <set>
TranslateAnimation - <translate/>
RotateAnimation - <rotate/>
ScaleAnimation - <scale/>
AlphaAnimation - <alpha/>
帧动画
AnimationDrawable - <animation-list>

属性补间动画
ValueAnimator - <animator>  
ObjectAnimator - <objectAnimator> 
 

坐标系为,控件左上角应该在的位置为(0,0)点

 

1.一般动画
Android动画解析--XML
translate 位置转移动画效果(位置指的是左上角位置,坐标系是自己布局中所在位置左上角为(0,0)或指定的)
fromXDelta 属性为动画起始时 X坐标上的位置可以是相对自身的百分比也可是具体像素值  
toXDelta   属性为动画结束时 X坐标上的位置可以是相对自身的百分比也可是具体像素值
fromYDelta 属性为动画起始时 Y坐标上的位置可以是相对自身的百分比也可是具体像素值
toYDelta   属性为动画结束时 Y坐标上的位置可以是相对自身的百分比也可是具体像素值       
duration   属性为动画持续时间
interpolator 属性为动画插入器
 例如android:interpolator="@android:anim/accelerate_decelerate_interpolator"
 accelerate_interpolator              加速-动画插入器
 decelerate_interpolator              减速- 动画插入器
 accelerate_decelerate_interpolator   加速-减速 动画插入器
注意:
没有指定fromXType toXType fromYType toYType 时候,默认是以自己为相对参照物

 

rotate 旋转动画效果
fromDegrees 属性为动画起始时物件的角度(正常水平状态为0度)  
toDegrees   属性为动画结束时物件旋转的角度 可以大于360度  
 当角度为正数——表示顺时针旋转 
 当角度为负数——表示逆时针旋转
以下为指定旋转的中心点(坐标系为自己在布局中的位置左上角为(0,0))
pivotX     属性为动画相对于物件的X坐标的开始位置
pivotY     属性为动画相对于物件的Y坐标的开始位置

 

scale 尺寸伸缩动画效果
fromXScale 属性为动画起始时 X坐标上的伸缩尺寸  
toXScale   属性为动画结束时 X坐标上的伸缩尺寸    
fromYScale 属性为动画起始时Y坐标上的伸缩尺寸  
toYScale   属性为动画结束时Y坐标上的伸缩尺寸  
pivotX     属性为动画相对于物件宽的轴心X坐标的开始位置
pivotY     属性为动画相对于物件高的轴心Y坐标的开始位置
fillAfter  属性 当设置为true ,该动画转化在动画结束后被应用

 

alpha 透明度动画
fromAlpha 属性为动画起始时透明度
toAlpha   属性为动画结束时透明度

 

如何使用XML中的动画效果
Animation myAnimation = AnimationUtils.loadAnimation(this,R.anim.my_action);
view.startAnimation(myAnimation);
在Java代码中定义动画
AlphaAnimation myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);
view.startAnimation(myAnimation_Alpha);

 

2.AnimationDrawable 逐帧动画
AnimationDrawable是顺序播放事先做好的图像,跟电影类似。
animation-list属性:
visible 规定drawable的初始可见性,默认为flase;
oneshot:如果为true,表示动画只播放一次停止在最后一帧上,如果设置为false表示动画循环播放。
variablePadding:If true, allows the drawable’s padding to change based on the current statethat is selected.

animation-list中的item属性:
drawable 当前帧引用的drawable资源
duration 当前帧显示的时间(毫秒为单位)


xml使用
view.setBackgroundResource(R.anim.rocket_thrust);
AnimationDrawable animationDrawable = (AnimationDrawable) view.getBackground();
animationDrawable.start();

代码构建
animationDrawable = new AnimationDrawable(); 
for(int i=1; i<5; i++) { 
    int id = getResources().getIdentifier("img0" + i, "drawable", getPackageName()); 
    Drawable drawable = getResources().getDrawable(id); 
    animationDrawable.addFrame(drawable, 100); 

imageView.setBackgroundDrawable(animationDrawable); 
animationDrawable.start();

你可能感兴趣的:(animation)