Android动画基础:View动画(平移+缩放+旋转+透明度)

学习并整理了下Android动画相关知识,掌握思想,摆脱遇到需求到处百度的场景。

目录

1、动画分类

2、View动画的种类

3、View动画的属性介绍

4、View动画应用(实战)

Java测试代码。

动画XML文件定义:

5、小结


1、动画分类

View动画(本文重点)

帧动画(容易报OOM)

属性动画(API 11以上支持),以下可使用 NineOldAndroids开源动画库


2、View动画的种类

View动画分为四类,平移+缩放+旋转+透明度,XML文件标签和Java代码类对应关系如下:

平移:     TranslateAnimation.java

缩放:          ScaleAnimation.java

旋转:          RotateAnimation.java

透明度:       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(R.id.toActivityBtn);

        Animation translateAnim = AnimationUtils.loadAnimation(this,R.anim.translate_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,R.anim.rotate_anim);
        img3.startAnimation(rotateAnim);

        Animation alphaAnim = AnimationUtils.loadAnimation(this,R.anim.alpha_anim);
        img4.startAnimation(alphaAnim);

上述代码块掌握三个知识点即可:

第一,使用AnimationUtils.loadAnimation加载XML获取动画类。

第二,View对象使用.starAnimation开启动画。

第三,Animation可以设置动画监听,内有三个状态函数。

动画XML文件定义:



    





5、小结

本篇内容结束,介绍总结了下基础View动画的四类,下篇整理有关自定义View动画(3D)和帧动画的内容。

学习资料参考:《Android开发艺术探索》+API文档

你可能感兴趣的:(android)