您的位置:首页 > 其它

帧动画的简单使用

2017-03-05 19:58 92 查看
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,
4000
则动画执行后,控件将回到动画开始的状态

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) {}

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: