Android动画中的一些知识点的总结
2016-08-25 16:14
513 查看
Android动画知识点
Android animation中有很多知识点,各种属性需要我们记住,但是由于本人记性不好,每次需要时都要去搜,觉得很麻烦,因此把一些常用的各种属性写到博客里,这样下次直接就可以找到了。一、AnimationSet
AnimationSet是Animation的子类,它是一系列动画的集合,可以包含多个动画,显示多种动画效果。常见的使用方法:
1、创建一个AnimationSet对象(Animation子类);
2、增加需要创建相应的Animation对象;
3、更加项目的需求,为Animation对象设置相应的数据;
4、将Animatin对象添加到AnimationSet对象当中;
5、使用控件对象开始执行AnimationSet。
二、Tween Animation的说明
1、setDuration(long durationMills)设置动画持续时间(单位:毫秒)
2、setFillAfter(Boolean fillAfter)
如果fillAfter的值为true,则动画执行后,控件将停留在执行结束的状态
3、setFillBefore(Boolean fillBefore)
如果fillBefore的值为true,则动画执行后,控件将回到动画执行之前的状态
4、setStartOffSet(long startOffSet)
设置动画执行之前的等待时间
5、setRepeatCount(int repeatCount)
设置动画重复执行的次数
6、 setRepeatCount(int repeatCount)
设置动画重复的类型
7、 setInterpolator(Interpolator)
设定插值器(指定的动画效果,譬如回弹等)
Animation属性详解
xml属性 | java方法 | 解释 |
---|---|---|
android:fromAlpha | AlphaAnimation(float fromAlpha, …) | 动画开始的透明度(0.0到1.0,0.0是全透明 |
android:toAlpha | AlphaAnimation(…,float toAlpha) | 动画结束的透明度,同上 |
xml属性 | java方法 | 解释 |
---|---|---|
android:fromDegrees | RotateAnimation(float fromDegrees, …) | 旋转开始角度,正代表顺时针度数,负代表逆时针度数 |
android:toDegrees | RotateAnimation(…, float toDegrees, …) | 旋转结束角度,正代表顺时针度数,负代表逆时针度数 |
android:pivotX | RotateAnimation(…, float pivotX, …) | 缩放起点X坐标(数值、百分数、百分数p,譬如50表示以当前View左上角坐标加50px为初始点、50%表示以当前View的左上角加上当前View宽高的50%做为初始点、50%p表示以当前View的左上角加上父控件宽高的50%做为初始点) |
android:pivotY | RotateAnimation(…, float pivotY) | 缩放起点Y坐标,同上规律 |
xml属性 | java方法 | 解释 |
---|---|---|
android:fromXScale | ScaleAnimation(float fromX,…) | 初始X轴缩放比例,1.0表示无变化 |
android:toXScale | ScaleAnimation(…, float toX,…) | 结束X轴缩放比例 |
android:fromYScale | ScaleAnimation(…, float fromY, …) | 初始Y轴缩放比例 |
android:toYScale | ScaleAnimation(…, float toY, …) | 结束Y轴缩放比例 |
android:pivotX | ScaleAnimation(…, float pivotX, …) | 缩放起点X轴坐标(数值、百分数、百分数p,譬如50表示以当前View左上角坐标加50px为初始点、50%表示以当前View的左上角加上当前View宽高的50%做为初始点、50%p表示以当前View的左上角加上父控件宽高的50%做为初始点) |
android:pivotY | ScaleAnimation(…, float pivotY) | 缩放起点Y轴坐标,同上规律 |
xml属性 | java方法 | 解释 |
---|---|---|
android:fromXDelta | TranslateAnimation(float fromXDelta, …) | 起始点X轴坐标(数值、百分数、百分数p,譬如50表示以当前View左上角坐标加50px为初始点、50%表示以当前View的左上角加上当前View宽高的50%做为初始点、50%p表示以当前View的左上角加上父控件宽高的50%做为初始点) |
android:fromYDelta | TranslateAnimation(…, float fromYDelta, …) | 起始点Y轴从标,同上规律 |
android:toXDelta | TranslateAnimation(…, float toXDelta, …) | 结束点X轴坐标,同上规律 |
android:toYDelta | TranslateAnimation(…, float toYDelta) | 结束点Y轴坐标,同上规律 |
注意事项
补间动画执行之后并未改变View的真实布局属性值。切记这一点,譬如我们在Activity中有一个Button在屏幕上方,我们设置了平移动画移动到屏幕下方然后保持动画最后执行状态呆在屏幕下方,这时如果点击屏幕下方动画执行之后的Button是没有任何反应的,而点击原来屏幕上方没有Button的地方却响应的是点击Button的事件。三、Interpolator的具体使用方法
Interpolator定义了动画变化的速率,在Animations框架当中定义了一下几种Interpolator★ AccelerateDecelerateInterpolator:在动画开始与结束的地方速率改变比较慢,在中间的时候速率快。
★ AccelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始加速
★ CycleInterpolator:动画循环播放特定的次数,速率改变沿着正弦曲线
★ DecelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始减速
★ LinearInterpolator:动画以均匀的速率改变
分为以下几种情况:
1、在set标签中
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"/>
2、如果在一个set标签中包含多个动画效果,如果想让这些动画效果共享一个Interpolator。
android:shareInterpolator="true"
3、如果不想共享一个interpolator,则设置
android:shareInterpolator=”true”,并且需要在每一个动画效果处添加interpolator。
<alpha android:interpolator="@android:anim/accelerate_decelerate_interpolator" />
4、如果是在代码上设置共享一个interpolator,则可以在AnimationSet设置interpolator。
AnimationSet animationSet = newAnimationSet(true); animationSet.setInterpolator(new AccelerateInterpolator());
5、如果不设置共享一个interpolator则可以在每一个Animation对象上面设置interpolator。
AnimationSet animationSet = newAnimationSet(false); alphaAnimation.setInterpolator(new Acc 4000 elerateInterpolator()); rotateAnimation.setInterpolator(new DecelerateInterpolator());
四、 AnimationListener
1、AnimationListener是一个监听器,该监听器在动画执行的各个阶段会得到通知,从而调用相应的方法;2、AnimationListener主要包括如下三个方法:
★ onAnimationEnd(Animation animation) - 当动画结束时调用
★ onAnimationRepeat(Animation animation) - 当动画重复时调用
★ onAniamtionStart(Animation animation) - 当动画启动时调用
五、Drawable动画说明
我们依旧可以使用xml或者java方式实现帧动画。但是依旧推荐使用xml,具体如下:< animation-list>必须是根节点,包含一个或者多个< item>元素,属性有:android:oneshot true代表只执行一次,false循环执行。
< item> 类似一帧的动画资源。
< item> animation-list的子项,包含属性如下:
android:drawable 一个frame的Drawable资源。
android:duration 一个frame显示多长时间。
相关文章推荐
- Android中关于Animation和Animator动画的知识点总结
- Android动画知识点总结
- Android开发中的一些小的知识点总结
- 总结Android模块化的一些知识点
- 对Android Handler Message Looper常见用法,知识点的一些总结
- android 里的动画,自己的一些总结
- Android 动画的一些小总结
- android几个知识点总结(全屏显示,倒计时,页面切换动画效果,obtainmessage)
- android 一些重要的知识点总结
- 一些工作中用到的知识点总结
- Android开发网上的一些重要知识点_3
- Android开发网上的一些重要知识点
- [转]Android媒体的一些使用总结
- Android开发网上的一些重要知识点_4
- Android媒体的一些使用总结
- Android开发网上的一些重要知识点
- android和SSH框架整合的cxf webservice的一些总结
- clistctrl知识点总结、文件打开弹框以及一些小问题的解决
- 总结Java的一些隐蔽的知识点(不断更新)
- Android开发网上的一些重要知识点 [1]