Android中的常用的动画类型及其本质的区别

Android 中的动画 Animation

一, 概要
android3.0之前 执行两种动画, 帧动画 和 补间动画

android3.0之后 引入了一个新的动画: 属性动画

二,分类

帧动画 Frame

补间动画 Tween

    透明度补间动画  

    缩放补间动画

    旋转补间动画

    移动补间动画

属性动画 Property

三, 帧动画 Frame Drawable Animation <一组图片> GIF文件

每一张静止的图片显示出来, 利用人眼睛的错觉, 得出的动画


创建方式

    1, 资源文件创建方式

        1.1 在res中创建drawable文件夹

        1.2 创建动画的文件 ***.xml 标签:  <animation-list/>

        1.3 在代码中或者在布局页面中, 设置ImageView的背景动画资源  android:background=""

        1.4 获得AnimationDrawable动画管理器, 调用start() 开始播放动画, 调用stop()停止播放



    2, java代码创建方式

        2.1 在代码中获得AnimationDrawable动画管理器

        2.2 向动画管理器中添加动画

        2.3 为图片设置动画

        2.4 调用AnimationDrawable中start() 开始播放动画, 调用stop() 停止播放



    3, 设置动画播放的次数
        //if true: 执行一次  , if false: 重复执行
       drawable.setOneShot(false);

四, 补间动画

 补充中间的动画

 开发者只需要设置开始和结束的动画, 中间的动画是由系统计算补齐

 主要分为:  透明度/ 缩放/ 旋转/ 平移 / set(集合)

 创建方式:  

1, 资源文件中

    存放的目录:  res/anim/

    <alpha />   透明度

    <scale />   缩放

    <Rotate />  旋转

    <Translate />   平移

    <set />     组合动画

       步骤:
         在res/anim/ 创建xml的资源文件

         在java代码中 startAnimation(AnimationUtils.londAnimation(上下文对象,anim的资源文件id));


2, java代码中


       2.1  得到Animation对象

       2.2  为控件启动动画

五, 为Activity的切换添加动画

//为Activity添加动画
/**
 * enterAnim    进入的动画
 * exitAnim 出去的动画
 */
overridePendingTransition(R.anim.anim01, R.anim.anim02);

六, 属性动画 Property 3.0后出现 增强版补间动画

存放的文件夹:  res/animator/***.xml

属性动画和补间动画区别

    1, 补间动画可以设置4个方向的动画,  属性动画指定任意动画

    2, 补间动画是针对UI控件执行的动画, 属性动画是针对对象进行的动画

    3, 补间动画移动后, 控件的实际位置没有变化 ;  属性动画会随着位置的变化而变化


属性名称:

    位移:  translationX  translationY

    旋转:  rotation  rotationX  ratationY

    缩放:  scaleX   scaleY

    透明度: alpha

创建方式

    1, xml的方式

        1.1 res中创建文件夹 animator, 并且在文件夹中创建.xml的文件  <objectAnimator/>

        1.2 在代码中加载资源文件中的动画

        ObjectAnimator animator = (ObjectAnimator) AnimatorInflater.loadAnimator(this, R.animator.anim_scalex);


        1.3 设置要执行该动画的对象

        animator.setTarget(iv);


        1.4 启动动画

        animator.start();

    2, 代码的方式

        单个动画:

        ObjectAnimator animator = ObjectAnoimator.ofFloat(目标对象,属性名称,可变参数的值);

        animator.start();


         集合:

        AnimatorSet set = new AnimatorSet();

        //定义每个动画
        ObjectAnimator animator1 = ObjectAnoimator.ofFloat(目标对象,属性名称,可变参数的值);

        ObjectAnimator animator2 = ObjectAnoimator.ofFloat(目标对象,属性名称,可变参数的值);


        List<Animator> list = new ArrayList<Animator>();
        list.add(animator1);
        list.add(animator2);

        //把动画添加到集合中
        set.playSequentially(list);//依次执行
        //set.playTogether(list);//一起执行

        //第二种方式
        //set.play(animator1).with(animator2);  一起执行
        //play()   with()  after()  before() 

        set.start();


        监听器:

    alphaAnimator.addListener(new AnimatorListener() {

            @Override
            public void onAnimationStart(Animator animation) {
                // TODO 动画开始时, 执行

            }

            @Override
            public void onAnimationRepeat(Animator animation) {
                // TODO 动画重复的时候, 执行

            }

            @Override
            public void onAnimationEnd(Animator animation) {
                // TODO 动画结束时,执行

            }

            @Override
            public void onAnimationCancel(Animator animation) {
                // TODO 动画取消时执行

            }
        });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android,帧动画是一种通过连续播放一系列预定义的图像来模拟动画效果的技术。在帧动画,每个图像都被称为一帧,而整个动画则由这些帧组成。 以下是在Android使用帧动画的基本步骤: 1. 定义帧动画资源:在res/drawable目录下创建一个XML文件来定义帧动画资源。在这个文件,你需要指定每一帧所对应的图像资源,并设置动画的持续时间和重复次数等属性。 2. 加载帧动画资源:在Activity的代码通过调用getResources().getDrawable()方法来加载帧动画资源。 3. 设置帧动画:将加载的帧动画资源设置到ImageView或其他View组件,调用setBackgroudDrawable()方法即可。 4. 启动帧动画:通过调用AnimationDrawable的start()方法来启动帧动画。 以下是一个简单的示例: 1. 定义帧动画资源。在res/drawable目录下创建一个名为"animation.xml"的XML文件,内容如下: ``` <animation-list android:id="@+id/selected" android:oneshot="false"> <item android:drawable="@drawable/frame1" android:duration="50" /> <item android:drawable="@drawable/frame2" android:duration="50" /> <item android:drawable="@drawable/frame3" android:duration="50" /> <item android:drawable="@drawable/frame4" android:duration="50" /> </animation-list> ``` 2. 加载帧动画资源。在Activity的代码通过调用getResources().getDrawable()方法来加载帧动画资源。 ``` AnimationDrawable animation = (AnimationDrawable) getResources().getDrawable(R.drawable.animation); ``` 3. 设置帧动画。将加载的帧动画资源设置到ImageView或其他View组件,调用setBackgroudDrawable()方法即可。 ``` ImageView imageView = (ImageView) findViewById(R.id.image_view); imageView.setBackgroundDrawable(animation); ``` 4. 启动帧动画。通过调用AnimationDrawable的start()方法来启动帧动画。 ``` animation.start(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值