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);

    效果:

  • 相关阅读:
    回调函数的理解[转]
    Android开发的小技巧总结
    获取Android源码
    PopupWindow的dismiss
    Linux下Android ADB驱动安装详解
    ubuntu下svn使用指南
    透明的Dialog
    ubuntu下SVN服务器安装配置
    JAVA签名
    android Intent API8
  • 原文地址:https://www.cnblogs.com/summerpxy/p/4931310.html
Copyright © 2011-2022 走看看