动画的使用—Drawable Animation
Drawable Animation可以称为帧动画,因为它是通过每次播放一帧Drawable资源实现的。
Drawable Animation算不上真正意义上的动画,因为它的内部实现是通过定时发送消息更新一个Drawable,
例如一个背景。所以使用这个动画的时候更像是使用一个背景资源,只不过更新背景的动作不用我们自己进行。
也许正是因为这个原因,android官方建议我们将这个动画资源放在drawable目录。
使用帧动画非常之简单,只需要在drawable目录定义个xml文件,
使用animation-list标签包裹所有组成这个动画的图片文件,设置播放速率。
然后在java代码中使用。
定义xml文件
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!--每一个 item 中包括一帧组成动画的图片 -->
<item android:drawable="@drawable/a01" android:duration="80" />
<item android:drawable="@drawable/a02" android:duration="80" />
<item android:drawable="@drawable/a03" android:duration="80" />
<item android:drawable="@drawable/a04" android:duration="80" />
<item android:drawable="@drawable/a05" android:duration="80" />
<item android:drawable="@drawable/a06" android:duration="80" />
<item android:drawable="@drawable/a07" android:duration="80" />
<item android:drawable="@drawable/a08" android:duration="80" />
<item android:drawable="@drawable/a09" android:duration="80" />
<item android:drawable="@drawable/a10" android:duration="80" />
<item android:drawable="@drawable/a11" android:duration="80" />
<item android:drawable="@drawable/a12" android:duration="80" />
<item android:drawable="@drawable/a13" android:duration="80" />
</animation-list>
这样就定义好了我们的动画资源,之后就是在activity中调用
package com.whathecode.drawableanimation; import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.MotionEvent;
import android.widget.ImageView; public class MainActivity extends ActionBarActivity { private AnimationDrawable ad;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/**
* 主布局文件实际上只是一个相对布局和一个ImageView
*/
setContentView(R.layout.activity_main); ImageView img = (ImageView) findViewById(R.id.ali); /**
* 获取动画资源,因为他就是一个背景资源
* 所以可以使用getBackground获取,然后强制转换成AnimationDrawable
* 也可以这样获取动画资源
* ad = (AnimationDrawable) getResources().getDrawable(R.drawable.motion);
* img.setBackgroundDrawable(ad);
*/
img.setBackgroundResource(R.drawable.motion);
ad = (AnimationDrawable)img.getBackground();
} @Override
public boolean onTouchEvent(MotionEvent event) {
switch(event.getAction())
{
case MotionEvent.ACTION_UP:
//播放动画
ad.start();
return true;
}
return super.onTouchEvent(event);
}
}
这些,就是AnimationDrawable的全部
动画的使用—Drawable Animation的更多相关文章
- 动画的使用—Drawable Animation
Drawable Animation可以称为帧动画,因为它是通过每次播放一帧Drawable资源实现的. Drawable Animation算不上真正意义上的动画,因为它的内部实现是通过定时发送消息 ...
- Android动画Drawable Animation
Drawable Animation是逐帧动画,那么使用它之前必须先定义好各个帧.我们可以通过代码定义,也可以使用xml文件定义,一般使用后者.如下: <?xml version="1 ...
- Android动画主要包含补间动画(Tween)View Animation、帧动画(Frame)Drawable Animation、以及属性动画Property Animation
程序运行效果图: Android动画主要包含补间动画(Tween)View Animation.帧动画(Frame)Drawable Animation.以及属性动画Property Animatio ...
- Android动画总结#补间动画(Tween Animation/View Animation) #帧动画(Frame Animation/Drawable Animation)#属性动画(PropertyAnimation)
1.共有三种动画,英文名字多种叫法如下 第一种动画:补间动画(Tween Animation/View Animation) 四个:RotateAnimation旋转. AlphaAnimation透 ...
- Android动画View Animation与Drawable Animation
Animations 一.Animations介绍 Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转.缩放.淡入淡出等, ...
- Android动画效果之Frame Animation(逐帧动画)
前言: 上一篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画),今天来总结下Android的另外一种动画Frame ...
- Android动画学习(二)——Tween Animation
前两天写过一篇Android动画学习的概述,大致的划分了下Android Animation的主要分类,没有看过的同学请移步:Android动画学习(一)——Android动画系统框架简介.今天接着来 ...
- Android动画学习笔记-Android Animation
Android动画学习笔记-Android Animation 3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...
- Android animation学习笔记之view/drawable animation
前一章中总结了android animation中property animation的知识和用法,这一章总结View animation和Drawable animation的有关知识: View ...
随机推荐
- 310实验室(六)CMake学习心得
树形结构方式布局. OTL 中每一个文件中的CMakeLists.txt 有不同的作用:按查看文件的先后顺便进行分层理解, 根文件即第一次 中的.txt是 启用 CMAKE_MODULE_PATH模板 ...
- postgresql----数据库表约束----PRIMARY KEY
五.PRIMARY KEY ---- 主键约束 主键可以是单个字段,也可以是多个字段的组合.主键约束其实是UNIQUE和NOT NULL约束的组合,即主键必须是唯一,且各字段都是NOT NULL的. ...
- nginx 重定向
不带www跳转www 1.301: return 301 http://www.xx.com$request_uri; 2.(1)rewrite ^(.*)$ http://www.xx.com$1 ...
- C++ string append方法的常用用法
append函数是向string的后面追加字符或字符串. 1).向string的后面加C-string string s = “hello “; const char *c = “out here “ ...
- Monte Carlo methods
Monte Carlo methods https://zh.wikipedia.org/wiki/蒙地卡羅方法 通常蒙地卡羅方法可以粗略地分成两类:一类是所求解的问题本身具有内在的随机性,借助计算机 ...
- 人工智能(Machine Learning)—— 机器学习
https://blog.csdn.net/luyao_cxy/article/details/82383091 转载:https://blog.csdn.net/qq_27297393/articl ...
- Doing Homework---hdu1074(状态压缩&&记忆化搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1074 有n(n<=15)门课需要做作业,每门课所需时间是used_time以及每门课作业上交的最 ...
- Oil Skimming---hdu4185(最大匹配)
题目链接 题意:有一个地图.代表水#代表油每个单元格是10*10的,现有10*20的勺子可以提取出水上漂浮的油,问最多可以提取几勺的油: 每次提取的时候勺子放的位置都要是油,不然就被污染而没有价值了: ...
- html中使用JS实现图片轮播效果
1.首先是效果图,要在网页中实现下图的轮播效果,有四张图片,每张图片有自己的标题,然后还有右下角的小方框,鼠标悬浮在小方框上,会切换到对应的图片中去. 2.先是HTML中的内容,最外层是轮播图整个的容 ...
- Maven的pom文件配置
pom.xml文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:// ...