zoukankan      html  css  js  c++  java
  • android中的逐帧动画

      在android中实现动画最简单的一种方式就是使用逐帧动画(AnimationDrawable).逐帧动画的原理同最古老的动画机制是一样的,通过快速的播放一组变化微小的图片,在人眼的视差时间下,达到一种连续播放的效果。逐帧动画涉及到的类是AnimationDrawable,这个类是一个Drawable类,因此需要将该类设置为一个view的background,然后让背景动起来。

      定义一个AnimationDrawable:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:oneshot="false">
     4     <item
     5         android:drawable="@drawable/radar_001"
     6         android:duration="30" />
     7     <item
     8         android:drawable="@drawable/radar_002"
     9         android:duration="30" />
    10     <item
    11         android:drawable="@drawable/radar_003"
    12         android:duration="30" />
    13     <item
    14         android:drawable="@drawable/radar_004"
    15         android:duration="30" />
    16     <item
    17         android:drawable="@drawable/radar_005"
    18         android:duration="30" />
    19     <item
    20         android:drawable="@drawable/radar_006"
    21         android:duration="30" />
    22 
    23 </animation-list>

    android:oneshot表示动画是否循环播放,如果是true,表示只播放一次;如果是false,循环播放

    调用动画:

    1   AnimationDrawable ad = (AnimationDrawable)mImageView.getBackground();
    2   ad.start();

    也可以在代码中实例化一个AnimationDrawable对象

    1   AnimationDrawable ad2 = new AnimationDrawable();
    2   ad2.addFrame(this.getResources().getDrawable(R.drawable.radar_001), 50);
    3   ad2.addFrame(this.getResources().getDrawable(R.drawable.radar_002), 50);
    4   ad2.setOneShot(false);

    效果:

  • 相关阅读:
    spark,hadoop集群安装注意
    TFRecord 使用
    python 路径引用问题
    flask使用模板
    tensorflow serving 模型部署
    docker使(二)—发布node应用镜像和容器
    docker使用(一)
    tensorBoard使用
    【疑难杂症】访问所有mapper方法都提醒invalid bound statement (not found)
    win10配置jdk12环境变量
  • 原文地址:https://www.cnblogs.com/summerpxy/p/4931310.html
Copyright © 2011-2022 走看看