学习并整理了下Android动画相关知识,掌握思想,摆脱遇到需求到处百度的场景。
目录
1、动画分类
2、View动画的种类
3、View动画的属性介绍
4、View动画应用(实战)
Java测试代码。
动画XML文件定义:
5、小结
View动画(本文重点)
帧动画(容易报OOM)
属性动画(API 11以上支持),以下可使用 NineOldAndroids开源动画库
View动画分为四类,平移+缩放+旋转+透明度,XML文件标签和Java代码类对应关系如下:
平移: <translate> TranslateAnimation.java
缩放: <scale> ScaleAnimation.java
旋转: <rotate> RotateAnimation.java
透明度: <alpha> AlphaAnimation.java
说明:四个Java文件的位置位于android.view.animation下,这与后面的属性动画(相关类位于android.animation下)注意区分!
公共属性可以划分三大类:第一类:from-to;第二类:pivot轴心;第三类:其他,如持续时间,是否重复,重复样式。
第一类:from-to。以平移为例,X轴的的两个属性为
android:fromXDelta="int"
android:toXDelta="int"
第二类:pivot轴心。缩放和旋转有轴心。两样分X轴和Y轴:
android:pivotX="100%"
android:pivotY="50%"
注:当我第一次写成1和0.5时,轴心不是中间。必须是加了百分号的,否则,它理解为px值作为轴心。
第三类:其他。可查看API文档
android:repeatCount="-1" //-1表示无限次,0为默认值,>0则表示具体次数
android:repeatMode="reverse" //两个取值:reverse和restart
android:duration="1000" //一次动画经历(持续)的时间
//mainActivity.java
img1 = findViewById(R.id.img1);img2 = findViewById(R.id.img2);img3 = findViewById(R.id.img3);img4 = findViewById(R.id.img4);btn = findViewById(ActivityBtn);Animation translateAnim = AnimationUtils.loadAnimation(this,anslate_animation);translateAnim.setAnimationListener(new Animation.AnimationListener() {@Overridepublic void onAnimationStart(Animation animation) {}@Overridepublic void onAnimationEnd(Animation animation) {}@Overridepublic void onAnimationRepeat(Animation animation) {}});img1.startAnimation(translateAnim);Animation scaleAnim = AnimationUtils.loadAnimation(this,R.anim.scale_anim);img2.startAnimation(scaleAnim);Animation rotateAnim = AnimationUtils.loadAnimation(this,ate_anim);img3.startAnimation(rotateAnim);Animation alphaAnim = AnimationUtils.loadAnimation(this,R.anim.alpha_anim);img4.startAnimation(alphaAnim);
上述代码块掌握三个知识点即可:
第一,使用AnimationUtils.loadAnimation加载XML获取动画类。
第二,View对象使用.starAnimation开启动画。
第三,Animation可以设置动画监听,内有三个状态函数。
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android=""android:shareInterpolator="true"android:ordering="together"><translateandroid:fromXDelta="-120"android:fromYDelta="0"android:toXDelta="120"android:toYDelta="0"android:duration="1000"android:repeatCount="-1"android:repeatMode="reverse"/></set>
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android=""android:fromXScale="0.6"android:fromYScale="1"android:toXScale="1.2"android:toYScale="1"android:pivotX="100%"android:pivotY="50%"android:repeatCount="-1"android:repeatMode="reverse"android:duration="1000"/>
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android=""android:fromDegrees="0"android:toDegrees="30"android:pivotX="50%"android:pivotY="50%"android:duration="500"android:repeatCount="-1"android:repeatMode="reverse"/>
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android=""android:fromAlpha="1"android:toAlpha="0"android:duration="500"android:repeatCount="-1"android:repeatMode="reverse"/>
本篇内容结束,介绍总结了下基础View动画的四类,下篇整理有关自定义View动画(3D)和帧动画的内容。
学习资料参考:《Android开发艺术探索》+API文档
本文发布于:2024-02-02 22:05:54,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170688275246747.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |