详解android 中animation-list 动画的应用

来自同事_Smile的封装应用,记录学习一下,分享给大家,具体如下:

1、AnimImageViewLoader类的封装

/**
 * 适用于animation-list 动画
 * Created by _Smile on 2016/6/13.
 */

public class AnimImageViewLoader extends ImageView {

  private AnimationDrawable frameAnimation;

  public AnimImageViewLoader(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init();
  }

  public AnimImageViewLoader(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();
  }

  public AnimImageViewLoader(Context context) {
    super(context);
    init();
  }

  /**
   * 初始化动画信息
   */
  private void init() {
    frameAnimation = (AnimationDrawable) getBackground();
    post(new Runnable(){
      public void run(){
        frameAnimation.start();
      }
    });
  }

  /**
   * 开启动画显示
   */
  public void startAnimation() {
    frameAnimation = (AnimationDrawable) getBackground();
    post(new Runnable() {
      @Override
      public void run() {
        frameAnimation.start();
      }
    });
  }

  /**
   * 关闭动画显示
   */
  public void stopAnimation() {
    post(new Runnable() {
      @Override
      public void run() {
        frameAnimation.stop();
      }
    });
  }
}

2、布局文件

<com.tecsun.tsb.res.widget.AnimImageViewLoader
        android:id="@+id/aiv_take_id_card_pic"
        style="@style/style_wrap_content"
        android:layout_alignTop="@id/iv_id_card_take_pic_main"
        android:background="@drawable/anim_id_card_positive_pic" />

3、在代码中的调用

AnimImageViewLoader aivIdCardPic = xFindViewById(R.id.aiv_take_id_card_pic);
 aivIdCardPic.setBackgroundResource(R.drawable.anim_id_card_negative_pic);
 aivIdCardPic.startAnimation();

4、R.drawable.anim_id_card_negative_pic文件内容

<?xml version="1.0" encoding="utf-8"?>
<!--图片动画-->
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@mipmap/ic_id_card_negative_01" android:duration="300"/>
  <item android:drawable="@mipmap/ic_id_card_negative_02" android:duration="300"/>
  <item android:drawable="@mipmap/ic_id_card_negative_03" android:duration="300"/>
  <item android:drawable="@mipmap/ic_id_card_negative_04" android:duration="300"/>
  <item android:drawable="@mipmap/ic_id_card_negative_05" android:duration="300"/>
  <item android:drawable="@mipmap/ic_id_card_negative_06" android:duration="300"/>
</animation-list>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android利用animation-list实现帧动画

    本文实例为大家分享了利用animation-list实现帧动画的具体代码,供大家参考,具体内容如下 将要顺序播放的图片放在资源目录下 再drawable目录下新建animation1文件和animation2文件  一个是按顺序显示动画,一个是倒序显示动画, 顺序显示动画文件:animation1.xml <?xml version="1.0" encoding="utf-8"?> <!-- 根标签为animation-list,其中oneshot

  • 详解Android中motion_toast的使用

    目录 前言 motion_toast 介绍 示例 最简单用法 其他内置的提醒 自定义 toast 总结 前言 我们通常会用 toast(也叫吐司)来显示提示信息,例如网络请求错误,校验错误等等.大多数 App的 toast 都很简单,简单的半透明黑底加上白色文字草草了事,比如下面这种. 说实话,这种toast 的体验很糟糕.假设是新手用户,他们并不知道 toast 从哪里出来,等出现错误的时候,闪现出来的时候,可能还没抓住内容的重点就消失了(尤其是想截屏抓错误的时候,更抓狂).这是因为一个是这种

  • 详解Android中Intent对象与Intent Filter过滤匹配过程

    如果对Intent不是特别了解,可以参见博文<详解Android中Intent的使用方法>,该文对本文要使用的action.category以及data都进行了详细介绍.如果想了解在开发中常见Intent的使用,可以参见<Android中Intent习惯用法>. 本文内容有点长,希望大家可以耐心读完. 本文在描述组件在manifest中注册的Intent Filter过滤器时,统一用intent-filter表示. 一.概述 我们知道,Intent是分两种的:显式Intent和隐式

  • 详解 Android中Libgdx使用ShapeRenderer自定义Actor解决无法接收到Touch事件的问题

    详解 Android中Libgdx使用ShapeRenderer自定义Actor解决无法接收到Touch事件的问题 今天在项目中实现了一个效果,主要是画一个圆.为了后续使用方便,将这个圆封装在一个自定义Actor(CircleActot)中,后续想显示一个圆的时候,只要创建一个CircleActor中即可. 部分代码如下所示: package com.ef.smallstar.unitmap.widget; import android.content.res.Resources; import

  • 详解Android中图片的三级缓存及实例

    详解Android中图片的三级缓存及实例 为什么要使用三级缓存 如今的 Android App 经常会需要网络交互,通过网络获取图片是再正常不过的事了 假如每次启动的时候都从网络拉取图片的话,势必会消耗很多流量.在当前的状况下,对于非wifi用户来说,流量还是很贵的,一个很耗流量的应用,其用户数量级肯定要受到影响 特别是,当我们想要重复浏览一些图片时,如果每一次浏览都需要通过网络获取,流量的浪费可想而知 所以提出三级缓存策略,通过网络.本地.内存三级缓存图片,来减少不必要的网络交互,避免浪费流量

  • 详解Android中的Service

    Service简介: Service是被设计用来在后台执行一些需要长时间运行的操作. Android由于允许Service在后台运行,甚至在结束Activity后,因此相对来说,Service相比Activity拥有更高的优先级. 创建Service: 要创建一个最基本的Service,需要完成以下工作:1)创建一个Java类,并让其继承Service 2)重写onCreate()和onBind()方法 其中,onCreate()方法是当该Service被创建时执行的方法,onBind()是该S

  • 详解Android中Handler的内部实现原理

    本文主要是对Handler和消息循环的实现原理进行源码分析,如果不熟悉Handler可以参见博文<详解Android中Handler的使用方法>,里面对Android为何以引入Handler机制以及如何使用Handler做了讲解. 概括来说,Handler是Android中引入的一种让开发者参与处理线程中消息循环的机制.我们在使用Handler的时候与Message打交道最多,Message是Hanlder机制向开发人员暴露出来的相关类,可以通过Message类完成大部分操作Handler的功

  • 详解Android 中AsyncTask 的使用

    详解Android 中AsyncTask 的使用 1.首先我们来看看AsyncTask 的介绍:   Handler 和 AsyncTask 都是android 中用来实现异步任务处理的方式:其中: Handler 实例向 UI 线程发送消息,完成界面更新, 优点:对整个过程控制的比较精细:         缺点:代码相对臃肿,多个任务同时执行时,不易对线程进行精确的控制: AsyncTask :比Handler 更轻量级一些,适用于简单的异步处理: 优点:简单 | 快捷 | 过程可控:    

  • 详解Android中获取软键盘状态和软键盘高度

    详解Android中获取软键盘状态和软键盘高度 应用场景 在Android应用中有时会需要获取软键盘的状态(即软键盘是显示还是隐藏)和软键盘的高度.这里列举了一些可能的应用场景. 场景一 当软键盘显示时,按下返回键应当是收起软键盘,而不是回退到上一个界面,但部分机型在返回键处理上有bug,按下返回键后,虽然软键盘会自动收起,但不会消费返回事件,导致Activity还会收到这次返回事件,执行回退操作,这时就需要判断,如果软键盘刚刚由显示变为隐藏状态,就不执行回退操作. 场景二 当软键盘弹出后,会将

  • 详解Android中fragment和viewpager的那点事儿

    在之前的博文<Android 中使用 ViewPager实现屏幕页面切换和页面轮播效果>和<详解Android中Fragment的两种创建方式>以及<Android中fragment与activity之间的交互(两种实现方式)>中我们介绍了ViewPager以及Fragment各自的使用场景以及不同的实现方式. 那如果将他们两结合起来,会不会擦出点火花呢,答案是肯定的.之前在介绍ViewPager时,我们实现了多个ImageView的切换,并配合更新导航原点的状态.那我

  • 详解Android中PopupWindow在7.0后适配的解决

    本文介绍了详解Android中PopupWindow在7.0后适配的解决,分享给大家,具体如下: 这里主要记录一次踩坑的经历. 需求:如上图左侧效果,想在按钮的下方弹一个PopupWindow.嗯,很简单一个效果,然当适配7.0后发现这个PopupWindow显示异常,然后网上找到了下面这种方案. 7.0适配方案(但7.1又复现了) // 将popupWindow显示在anchor下方 public void showAsDropDown(PopupWindow popupWindow, Vie

随机推荐