帧动画的简单使用

来源:互联网 发布:cookie的js代码调用 编辑:程序博客网 时间:2024/06/05 00:13
Android使用Animation代表抽象的动画类,它包括:


AlphaAnimation(渐变透明动画):透明度(alpha)渐变效果,对应<alpha/>标签。


ScaleAnimation(缩放动画):缩放渐变,可以指定缩放的参考点,对应<scale/>标签。


TranslateAnimation(位移动画):位移渐变,需要指定移动点的开始和结束坐标,对应<translate/>标签。


RotateAnimation(旋转动画):旋转渐变,可以指定旋转的参考点,对应<rotate/>标签。


AnimationSet(动画合集):组合渐变,支持组合多种渐变效果,对应<set/>标签。
XML实现补间动画(TweenAnimation)分3步
1、首先用XML定义一个动画效果,
xml位置:res/anim/xxx.xml 
2、依据这个XML使用AnimationUtils工具类创建一个Animation对象 
3、调用View组件的startAnimation方法实现动画
1.在res/anim/定义资源文件根元素为alpha的xml文件
<?xml version="1.0" encoding="utf-8"?>
<alpha
     xmlns:android="http://schemas.android.com/apk/res/android"     


    android:fromAlpha="0"   动画起始时透明度


    android:toAlpha="1"    动画结束时透明度          1.0表示完全不透明     0.0表示完全透明


    android:duration="2000"    动画持续时间


    android:repeatCount="5" 动画重复次数  从0开始


    android:repeatMode="reverse"    动画重复模式 


    android:fillBefore="true"   动画执行后,控件将停留在动画结束的状态 >  
</alpha>




1.在res/anim/定义资源文件根元素为scale的xml文件


<?xml version="1.0" encoding="utf-8"?>
<scale  xmlns:android="http://schemas.android.com/apk/res/android">

android:fromXScale="0.0“   -动画起始时 X坐标上的伸缩尺寸
android:fromYScale="0.0“  -动画起始时 Y坐标上的伸缩尺寸
android:toXScale="1.0“   -动画结束时X坐标上的伸缩尺寸
android:toYScale="1.0“  -动画结束时Y坐标上的伸缩尺寸?
android:pivotX="50%“ -动画相对于物件的X坐标的开始位置
android:pivotY="50%“ -动画相对于物件的Y坐标的开始位置
android:repeatCount="3"
android:duration="5000"
</scale>
说明:??????    0.0表示收缩到没有?
??????????????????? 1.0表示正常无伸缩?????
??????????????????? 值小于1.0表示收缩??
??????????????????? 值大于1.0表示放大
?????? 以上两个属性值 从0%-100%中取值
????????50%为物件的X或Y方向坐标上的中点位置件的Y坐标的开始位置
1.在res/anim/定义资源文件根元素为translate的xml文件


<?xml version="1.0" encoding="utf-8"?>
<translate  xmlns:android="http://schemas.android.com/apk/res/android">

android:interpolator=“@android:anim/accelerate_interpolator“ --指定一个动画的插入器 加速-减速
android:fromXDelta="0“ --动画起始时 X坐标上的位置
android:fromYDelta="0“ --动画起始时 Y坐标上的位置
android:toXDelta="400“ --动画结束时 X坐标上的位置
android:toYDelta="0“   --动画结束时 Y坐标上的位置
android:duration="5000"

</translate>
说明:??????不指定以上4个x、y坐标参数,默认以设置动画对象本身为参照物
1.在res/anim/定义资源文件的根元素为set的xml文件,将要展示的动画按对应标签进行选择


2.AnimationSet set=new AnimationSet(false);
set.addAnimation(Animation  animation);//开启动画合集
通用属性:


setDuration(long durationMillis)://设置动画持续事件(单位:毫秒)


setFillAfter(boolean fillAfter)://如果fillAfter设为true,则动画执行后,控件将停留在动画结束的状态


setFillBefore(boolean fillBefore)://如果fillBefore设为true,则动画执行后,控件将回到动画开始的状态


setStartOffset(long startOffset)://设置动画执行之前等待的时间(单位:毫秒)


setRepeatCount(int repeatCount)://设置动画重复的次数


setRepeatMode(int repeatMode): //设置动画重复的模式


startAnimation(Animation animation)://开启动画
//得到渐变透明动画对象
AlphaAnimation animation = new AlphaAnimation(float fromAlpha, float toAlpha)


fromAlpha:开始时的透明度
toAlpha:结束时的透明度
//获得TranslateAnimation对象
TranslateAnimation translateAnimation =new TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)


fromXDelta:动画开始时X坐标的变化
toXDelta:动画结束时X坐标的变化


fromYDelta:动画开始时Y坐标的变化
toYDelta:动画结束时Y坐标的变化
//获得TranslateAnimation对象
TranslateAnimation animation = new TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue,            int fromYType, float fromYValue, int toYType, float toYValue)


fromXType:X轴的起始参照模式
fromXValue:X轴的起始位置


toXType:X轴的结束参照模式
toXValue:X轴的结束位置


fromYType:Y轴的起始参照模式
fromYValue:Y轴的起始位置


toYType:Y轴的结束参照模式
toYValue:Y轴的结束位置


如果选择参照模式为ABSOLUTE,那么对应的值应该是具体的坐标值,比如100到300,指绝对的屏幕像素单位


Aznimaton.setAnimationListener(new AnimationListener() {


动画开启时
@Override
public void onAnimationStart(Animation animation) {}


动画重复时
@Override
public void onAnimationRepeat(Animation animation) {}

动画结束时
@Override
public void onAnimationEnd(Animation animation) {}


});
0 0
原创粉丝点击