IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android中帧动画的实现 -> 正文阅读

[移动开发]Android中帧动画的实现

1.Android中动画分类

Android中的动画分为3大类:帧动画,补间动画和属性动画

2.帧动画实现方式

帧动画由动画图形AnimationDrawable生成

3.AnimationDrawable常用方法

  • addFrame:添加一幅图片帧,并指定该帧的持续时间(单位毫秒)。
  • setOneShot:设置是否只播放一次。为true表示只播放一次,为false表示循环播放。
  • start:开始播放。注意,设置宿主视图后才能进行播放。
  • stop:停止播放。
  • isRunning:判断是否正在播放。

4.帧动画显示方案

有了动画图形,还得有一个宿主视图显示该图形,一般使用图形视图ImageView承载AnimationDrawable,即调用ImageView对象的setImageDrawable方法将动画图形加载到图像视图中。

5.代码中实现帧动画

    private void showFrameAnimByCode(){
        ad_frame = new AnimationDrawable();
        ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p1),50);
        ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p2),50);
        ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p3),50);
        ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p4),50);
        ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p5),50);
        ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p6),50);
        ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p7),50);
        ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p8),50);
        ad_frame.setOneShot(false);
        iv_pic.setImageDrawable(ad_frame);
        ad_frame.start();
    }

6.资源文件中实现帧动画

在drawable下创建资源文件frame_anim.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item
        android:drawable="@mipmap/flow_p1"
        android:duration="50" />
    <item
        android:drawable="@mipmap/flow_p2"
        android:duration="50" />
    <item
        android:drawable="@mipmap/flow_p3"
        android:duration="50" />
    <item
        android:drawable="@mipmap/flow_p4"
        android:duration="50" />
    <item
        android:drawable="@mipmap/flow_p5"
        android:duration="50" />
    <item
        android:drawable="@mipmap/flow_p6"
        android:duration="50" />
    <item
        android:drawable="@mipmap/flow_p7"
        android:duration="50" />
    <item
        android:drawable="@mipmap/flow_p8"
        android:duration="50" />
</animation-list>

在代码中

    private void showFrameAnimByCode(){
        iv_pic.setImageResource(R.drawable.frame_anim);
        ad_frame = (AnimationDrawable) iv_pic.getDrawable();
        ad_frame.start();
    }
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 11:35:50  更:2021-07-10 11:36:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 7:41:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码