Android动画详解之Android 动画属性和实现方法之帧动画(二)
一、简介
Frame Animation(AnimationDrawable对象):帧动画,就像GIF图片,通过一系列Drawable依次显示来模拟动画的效果。
必须以<animation-list>为根元素,以<item>表示要轮换显示的图片,duration属性表示各项显示的时间。XML文件要放在/res/anim/或者/res/animator目录下。
二、代码实现
在frame_animation.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/lw0" android:duration="50" /><item android:drawable="@mipmap/lw1" android:duration="50" /><item android:drawable="@mipmap/lw2" android:duration="50" /><item android:drawable="@mipmap/lw3" android:duration="50" /><item android:drawable="@mipmap/lw4" android:duration="50" /><item android:drawable="@mipmap/lw5" android:duration="50" /><item android:drawable="@mipmap/lw6" android:duration="50" /><item android:drawable="@mipmap/lw7" android:duration="50" /><item android:drawable="@mipmap/lw8" android:duration="50" /><item android:drawable="@mipmap/lw9" android:duration="50" />
</animation-list>
drawable是绑定图片,duration是设置每张图片持续时间
主页面的xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.lw.frameanimation_demo.MainActivity"><ImageViewandroid:id="@+id/myImageView"android:layout_centerInParent="true"android:layout_width="150dp"android:layout_height="150dp"android:src="@anim/frame_animation"/><Buttonandroid:layout_centerHorizontal="true"android:id="@+id/myButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Open/Stop"/></RelativeLayout>
MainActivity代码
public class MainActivity extends AppCompatActivity {private ImageView imageView;private Button button;private AnimationDrawable animationDrawable = null;private void initView(){imageView = (ImageView) findViewById(R.id.myImageView);button = (Button) findViewById(R.id.myButton);//mageView.setBackgroundResource(R.anim.frame_animation);animationDrawable = (AnimationDrawable) imageView.getDrawable();}private void initCtrl(){button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//每次从头开始播放if(!animationDrawable.isRunning()){//是否执行一次animationDrawable.setOneShot(false);animationDrawable.start();}else{animationDrawable.setOneShot(false);animationDrawable.stop();}}});}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initCtrl();}//进入的时候播放// SDK中提到,不要在onCreate()中调用start(),因为AnimationDrawable还没有完全跟Window相关联,如果想要界面显示时就开始动画的话,可以在onWindowFoucsChanged()中调用start()。@Overridepublic void onWindowFocusChanged(boolean hasFocus) {super.onWindowFocusChanged(hasFocus);if (hasFocus) {animationDrawable.setOneShot(false);animationDrawable.start();}}
}
其中:
Android动画详解之Android 动画属性和实现方法之帧动画(二)相关推荐
- 【转】Android菜单详解——理解android中的Menu--不错
原文网址:http://www.cnblogs.com/qingblog/archive/2012/06/08/2541709.html 前言 今天看了pro android 3中menu这一章,对A ...
- Android菜单详解——理解android中的Menu
前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至 ...
- android rotate 动画,Android RotateAnimation详解
RotateAnimation旋转坐标系为以旋转点为坐标系(0,0)点.x轴为0度,顺时针方向旋转一定的角度. 1.RotateAnimation(fromDegrees, toDegrees) [默 ...
- Android Drawable 详解
Android Drawable 详解 @(Technical)[Android, Drawable, StateListDrawable, LayerDrawable, AnimationDrawa ...
- android常用api大全,Android API详解大全.pdf
Android API详解大全 Android -- TextView 一.TextView的API 1.1 结构 java.lang.Object ↳ android.view.View ↳ and ...
- android service是什么,Android service是什么 Android service详解
Android service是什么 Android service详解 时间:2017-04-06 来源:Android开发学习网 什么是Android Service? service是A ...
- Android @Override详解
转载自 Android @Override详解 Android的开发者对@Override肯定是非常熟悉,不管是自己的代码中还是书上都会出现,但是他是什么意思呢?如下: @Override是伪代码, ...
- Android 属性动画 详解
Android 属性动画 详解 Android动画类型: View Animation(即所谓的Tween Animation补间动画):View Animation相当简单,不过只能支持简单的缩放. ...
- android动画详解二 属性动画原理
property动画是一个强大的框架,它几乎能使你动画任何东西.你可以定义一个动画来改变对象的任何属性,不论其是否被绘制于屏幕之上.一个属性动画在一定时间内多次改变一个属性(对象的一个字段)的值.要动 ...
最新文章
- 激光雷达和V2X技术
- 这个曾一票难求的AI大会,现在可以抢购早鸟票了丨MEET 2021
- 各个大厂的机器学习平台概述
- Linux下samba服务速度很慢的问题
- VC程序初始化隐藏窗体
- 服务器禁止修改目录,目录服务器限制 (Sun Java System Directory Server Enterprise Edition 6.2 发行说明)...
- Python学习笔记之用户输入
- Hive 1.1.0 某些字段的查询结果为NULL
- 为什么说 Rust 是编程的未来?
- python 下载文件-python实现下载文件的三种方法_python
- CSS外边距合并(塌陷/margin越界)
- Chrome浏览器安装Axure插件教程
- 数据库ASM管理-ASM文件
- Linux系统压力测试工具stress
- /etc/login.defs配置文件详解
- 前端---HTML制作百度首页
- c++基础知识的学习--函数探幽
- 0元永久授权,etl作业批量调度必备软件 Taskctl Free应用版
- 2020计算机考研初试考试先后顺序,2020考研初试考试时间及科目安排
- CS5263设计原理图|CS5263设计DP转HDMI电路参考|CS5263中文说明
热门文章
- 华南师范大学计算机学院保研,广东高校保研率|进了广东这些大学,离保研也近了一步...
- 【python】百度关键词排名查询实现
- C语言之自定义函数的实现
- mysql 查看slave状态_解读show slave status 命令判断MySQL复制同步状态
- 寻找我心中的产品经理
- 【算法学习】四 二分法查找(折半法或者折半查找)
- JS-打开新窗口(window.open)/关闭窗口(window.close)
- 怎么找回计算机用户名密码怎么办,忘记了登录路由器的用户名与密码怎么办?...
- linux清除文件后df还是满的,Linux系统下用du和df命令清除大文件的方法
- 股票中的杠杆原理是指什么?