Android动画基础:View动画(平移+缩放+旋转+透明度)学习并整理了下Android动画相关知识,掌握思想,摆脱遇到需求到处百度的场景。
⽬录
1、动画分类
View动画(本⽂重点)
帧动画(容易报OOM)
属性动画(API 11以上⽀持),以下可使⽤ NineOldAndroids开源动画库
2、View动画的种类
View动画分为四类,平移+缩放+旋转+透明度,XML⽂件标签和Java代码类对应关系如下:
平移: <translate>    TranslateAnimation.java
缩放: <scale>        ScaleAnimation.java
旋转: <rotate>        RotateAnimation.java
透明度: <alpha>      AlphaAnimation.java
说明:四个Java⽂件的位置位于android.view.animation下,这与后⾯的属性动画(相关类位于android.animation下)注意区分!
3、View动画的属性介绍
公共属性可以划分三⼤类:第⼀类: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"        //⼀次动画经历(持续)的时间
4、View动画应⽤(实战)
Java测试代码。
//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() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
}
@Override
public 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⽂件定义:rotate属性
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="schemas.android/apk/res/android"
android:shareInterpolator="true"
android:ordering="together">
<translate
android: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="schemas.android/apk/res/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="schemas.android/apk/res/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="schemas.android/apk/res/android"
android:fromAlpha="1"
android:toAlpha="0"
android:duration="500"
android:repeatCount="-1"
android:repeatMode="reverse"
/
>
5、⼩结
本篇内容结束,介绍总结了下基础View动画的四类,下篇整理有关⾃定义View动画(3D)和帧动画的内容。学习资料参考:《Android开发艺术探索》+API⽂档

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。