[Android基础]动画xml文件
来源:互联网 发布:ubuntu 分区 编辑:程序博客网 时间:2024/06/05 11:30
参考链接:
http://blog.csdn.net/heavenforgold/article/details/7074136
http://www.cnblogs.com/bavariama/archive/2013/01/29/2881058.html
http://blog.csdn.net/airk000/article/details/39164685
http://www.cnblogs.com/mengdd/p/3494041.html
动画xml文件有两种:anim文件夹下的和animator文件夹下的,前者只包含位移、旋转、缩放和透明度四种动画,后者则是属性动画。
当想多个动画混合时,只需将要混合的动画放在set标签内。set有一个属性android:ordering,缺省为together,即同时发生,还可以设置为sequentially依次发生。
1.anim文件夹下的(有translate/rotate/scale/alpha四种动画标签)
例子:
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="300" android:fromXDelta="100%p" android:toXDelta="0" /> </set>
a.translate动画标签
android:fromXDelta:X轴方向开始位置
android:toXDelta:X轴方向结束位置
android:fromYDelta:Y轴方向开始位置
android:toYDelta:Y轴方向结束位置
上面四种属性的取值范围还包括:-100%p - 100%p
以第一张图为例,当清楚了位置后,我们就可以实现左右滑动的切换效果,首先让要退出的Activity从位置2移动到位置1,同时让进入的Activity从位置3移动位置2,这样就能实现从左右切换效果。
android:interpolator: 加速器,可以取的值如下:
@android:anim/accelerate_interpolator: 越来越快
@android:anim/decelerate_interpolator:越来越慢
@android:anim/accelerate_decelerate_interpolator:先快后慢
@android:anim/anticipate_interpolator: 先后退一小步然后向前加速
@android:anim/overshoot_interpolator:快速到达终点超出一小步然后回到终点
@android:anim/anticipate_overshoot_interpolator:到达终点超出一小步然后回到终点
@android:anim/bounce_interpolator:到达终点产生弹球效果,弹几下回到终点
@android:anim/linear_interpolator:均匀速度。
android:startOffset: 延迟一定时间后运行动画
android:fillAfter:当设置为true时,该动画在动画结束后被应用
b.rotate动画标签
android:fromDegrees
android:toDegrees
当取值为正时,表示顺时针旋转
当取值为负时,表示逆时针旋转
c.scale动画标签 略
d.alpha动画标签 略
如何获取xml中的动画效果:
Animation animation = AnimationUtils.loadAnimation(context, R.anim.fade_zoom_out);
将动画效果应用到view:
public void startAnimation(Animation animation)
将动画效果应用到activity:
public void overridePendingTransition(int enterAnim, int exitAnim)
参数enterAnim和exitAnim都应该是R.anim.xxx的形式。如果没有动画则给0。这个函数需要在如startActivity或finish调用之后进行调用。enterAnim的动画会应用在进来(新)的那个Activity上,exitAnim的动画会应用在离去的Activity上。
将动画效果应用到fragment:
1.
FragmentTransaction.setTransition(int transit)
该方法可传入的三个参数是:
TRANSIT_NONE, TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE
分别对应无动画、打开形式的动画和关闭形式的动画。设置好后,在Fragment添加和移除的时候都会有。
注意方法必须在add、remove、replace调用之前被设置,否则不起作用
2.
FragmentTransaction.setCustomAnimations(int enter,int exit)
注意方法必须在add、remove、replace调用之前被设置,否则不起作用。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
注意:
如果fragment是v4包的,那么fragment的动画xml文件只能是在res/anim文件夹下,即fragment的动画不能来自res/animator
如果fragment不是v4包的,那么fragment的动画xml文件只能是在res/animator文件夹下,即fragment的动画不能来自res/anim
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
设置动画监听:
public void setAnimationListener(AnimationListener listener)
public static interface AnimationListener { void onAnimationStart(Animation animation); void onAnimationEnd(Animation animation); void onAnimationRepeat(Animation animation); }
2.animator文件夹下的
例子:
<?xml version="1.0" encoding="utf-8"?> <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:interpolator/accelerate_decelerate" android:valueFrom="-1280" android:valueTo="0" android:valueType="floatType" android:propertyName="X" android:duration="2000" />
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:ordering="together"> <!-- android:ordering together表示同时运行动画, sequentially 表示按顺序执行以下动画 --> <set> <objectAnimator android:propertyName="rotationX" android:repeatCount="50" android:repeatMode="reverse" android:valueFrom="0" android:valueTo="20" /> <objectAnimator android:propertyName="rotationY" android:repeatCount="50" android:repeatMode="reverse" android:valueFrom="0" android:valueTo="45" android:valueType="floatType" /> </set> <set> <objectAnimator android:propertyName="scaleX" android:repeatCount="50" android:repeatMode="reverse" android:valueFrom="1.0" android:valueTo="2.0" > </objectAnimator> <objectAnimator android:propertyName="scaleY" android:repeatCount="50" android:repeatMode="reverse" android:valueFrom="1.0" android:valueTo="2.0" > </objectAnimator> </set> </set>
- [Android基础]动画xml文件
- Android基础:动画二:XML创建动画
- android动画xml文件详细实例说明
- Android xml资源文件animal动画解析
- Android使用xml文件实现动画
- Android XML文件定义4种动画
- Android-studio创建动画xml文件
- android 基础 res文件 动画anim
- xml文件动画
- Android基础1: Xml文件解析
- android 基础 res文件 assets xml raw
- Android中的动画效果学习之二---Tween动画(使用XML文件进行配置动画效果)
- Android 如何在XML文件中定义动画
- Android XML动画资源文件详细讲解(上)
- Android XML动画资源文件详细讲解(下)
- Android 如何在XML文件中定义动画
- android动画XML实现
- Android配置xml动画
- Dynamics CRM 2015/2016 Web API:重客户端的CRUD操作
- Android Fragment 生命周期分析
- Oracle定时任务处理
- 防止sql注入的五种方法
- maven如何合并两个war到一个war项目中
- [Android基础]动画xml文件
- Silverlight TabControl的SelectionChanged简单例子
- VC6 实现GBK到UTF8编码转换(c++)
- kettle6.0linux安装配置
- DES单倍长 双倍长加密,POS机行业基本会用到
- 关于图像特征提取
- 欢迎使用CSDN-markdown编辑器
- java基础-数组
- 如何选择学习PHP、ASP、ASP.net (2009-10-28 17:02:26)