来自同事_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 defS 在Android开发中,`animation-list` 是一个非常实用的组件,用于实现帧动画效果,比如在用户界面中展示一系列连续的图像,常用于加载动画、按钮点击反馈等场景。本篇将详细介绍如何在Android中使用`animation-list`,并结合提供的代码片段进行解析。 我们来理解`animation-list`的基本结构。它是一个XML资源文件,通常位于`res/drawable`目录下,用于定义一系列的图像帧以及它们持续的时间。下面是一个示例: ```xml <animation-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@mipmap/frame1" android:duration="100" /> <item android:drawable="@mipmap/frame2" android:duration="100" /> <!-- 更多帧 --> </animation-list> ``` 在这个例子中,`frame1`和`frame2`是连续的图像帧,`duration`属性定义了每帧显示的时间,单位为毫秒。 接着,我们来看封装的`AnimImageViewLoader`类。这个自定义的`ImageView`扩展类主要是为了方便管理和控制`animation-list`动画的播放与停止。关键在于初始化`frameAnimation`对象,它是`AnimationDrawable`类型的,代表了动画的集合。 ```java public class AnimImageViewLoader extends ImageView { private AnimationDrawable frameAnimation; // 构造函数 // ... 省略部分代码 ... // 初始化动画信息 private void init() { frameAnimation = (AnimationDrawable) getBackground(); post(new Runnable(){ @Override 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(); } }); } } ``` 在`init()`方法中,通过`getBackground()`获取到`ImageView`的背景,即`animation-list`资源,并立即启动动画。`startAnimation()`和`stopAnimation()`方法分别用于在需要时启动或停止动画。 在布局文件中,我们可以看到`AnimImageViewLoader`被使用,并设置了相应的背景资源`anim_id_card_positive_pic`,这应该是一个包含帧动画的XML资源文件。 ```xml <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" /> ``` 在代码中,通过`xFindViewById`方法获取到`AnimImageViewLoader`实例,然后设置新的背景资源`anim_id_card_negative_pic`,最后调用`startAnimation()`来开始动画。 ```java AnimImageViewLoader aivIdCardPic = xFindViewById(R.id.aiv_take_id_card_pic); aivIdCardPic.setBackgroundResource(R.drawable.anim_id_card_negative_pic); aivIdCardPic.startAnimation(); ``` 这个流程展示了如何在Android中创建和使用自定义的`ImageView`子类来管理`animation-list`动画。通过这种方式,可以更方便地控制帧动画的播放,使其更好地适应应用程序的需求。同时,通过更换背景资源,可以轻松地切换不同的动画效果。
- 粉丝: 3
- 资源: 881
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于java的工作量统计系统的设计与实现.docx
- 基于java的工资信息管理系统的设计与实现.docx
- 与SecureCRT-Xshell变色方案文章配套使用
- 基于java的教师薪酬管理系统的设计与实现.docx
- 基于java的家教管理系统的设计与实现.docx
- 基于java的国产动漫网站的设计与实现.docx
- 基于java的教学辅助系统的设计与实现.docx
- 基于java的客户管理系统的设计与实现.docx
- 基于java的教学资源共享平台的设计与实现.docx
- 基于java的垃圾分类回收系统的设计与实现.docx
- 基于java的篮球联盟管理系统的设计与实现.docx
- 基于java的七彩云南文化旅游网站的设计与实现.docx
- 基于java的农业设备租赁系统的设计与实现.docx
- 基于java的美食信息推荐系统的设计与实现.docx
- 新型滑模扰动观测器+模型预测控制的永磁同步电机带载仿真模型 控制结合:转速环(新型滑模扰动观测器(NSMDO)+电流内环(MPCC模型预测控制 模型预测m代码附带详细注释 1转速环:采用新型滑模扰
- 基于java的人驾校预约管理系统的设计与实现.docx
评论0