Android学习笔记进阶十一图片动画播放(AnimationDrawable)

大家平时见到的最多的可能就是Frame动画了,Android中当然也少不了它。它的使用更加简单,只需要创建一个
AnimationDrawabledF对象来表示Frame动画,然后通过addFrame 方法把每一帧要显示的内容添加进去,并设置播放间隔时间,本例子中间隔时间为5S,
最后通过start 方法就可。
以播放这个动画了,同时还可以通过 setOneShot方法设置是否重复播放。
- package xiaosi.bu;
 - import android.app.Activity;
 - import android.graphics.drawable.AnimationDrawable;
 - import android.os.Bundle;
 - import android.view.View;
 - import android.view.View.OnClickListener;
 - import android.widget.Button;
 - import android.widget.ImageView;
 - public class TupianActivity extends Activity {
 - /** Called when the activity is first created. */
 - private Button start = null;
 - private Button stop = null;
 - private ImageView image = null;
 - private AnimationDrawable animationDrawable = null;
 - @Override
 - public void onCreate(Bundle savedInstanceState) {
 - super.onCreate(savedInstanceState);
 - setContentView(R.layout.main);
 - start = (Button)findViewById(R.id.start);
 - start.setOnClickListener(new StartListener());
 - stop = (Button)findViewById(R.id.stop);
 - stop.setOnClickListener(new StopListener());
 - image = (ImageView)findViewById(R.id.imageview);
 - animationDrawable = new AnimationDrawable();
 - for(int i =0;i<8;i++){
 - //第一个 就是我们的资源名称(图片名)
 - //第二个 就是我们存放图片的文件夹drawable
 - //第三个 包名也可以用Context的getPackageName返回应用程序的包名
 - int id = getResources().getIdentifier( "a"+i, "drawable", "xiaosi.bu");
 - System.out.println("ID:" + id);
 - animationDrawable.addFrame(getResources().getDrawable(id), 2000);
 - }
 - //设置手否重复播放,false为重复
 - animationDrawable.setOneShot(false);
 - image.setImageDrawable(animationDrawable);
 - }
 - private class StartListener implements OnClickListener{
 - public void onClick(View v)
 - {
 - animationDrawable.start();
 - }
 - }
 - private class StopListener implements OnClickListener{
 - public void onClick(View v)
 - {
 - animationDrawable.stop();
 - }
 - }
 - }
 
main.xml
- <?xml version="1.0" encoding="utf-8"?>
 - <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 - android:orientation="vertical"
 - android:layout_width="fill_parent"
 - android:layout_height="fill_parent">
 - <LinearLayout
 - android:orientation="horizontal"
 - android:layout_width="fill_parent"
 - android:layout_height="wrap_content">
 - <Button android:id="@+id/start"
 - android:text="Start"
 - android:layout_width="wrap_content"
 - android:layout_height="wrap_content"/>
 - <Button android:id="@+id/stop"
 - android:text="End"
 - android:layout_width="wrap_content"
 - android:layout_height="wrap_content"/>
 - </LinearLayout>
 - <ImageView android:id="@+id/imageview"
 - android:layout_width="fill_parent"
 - android:layout_height="fill_parent"
 - android:scaleType="fitXY"
 - android:background="#ffffff" />
 - </LinearLayout>
 
源代码:点击打开链接
Android学习笔记进阶十一图片动画播放(AnimationDrawable)的更多相关文章
- Android学习笔记进阶之在图片上涂鸦(能清屏)
		
Android学习笔记进阶之在图片上涂鸦(能清屏) 2013-11-19 10:52 117人阅读 评论(0) 收藏 举报 HandWritingActivity.java package xiaos ...
 - Android学习笔记进阶16之BitmapShader
		
<1>简介 具体的看一下博文:Android学习笔记进阶15之Shader渲染 public BitmapShader(Bitmap bitmap,Shader.TileMode ti ...
 - Android学习笔记进阶17之LinearGradient
		
具体的看一下博文:Android学习笔记进阶15之Shader渲染 package xiaosi.BitmapShader; import android.app.Activity; import a ...
 - Android学习笔记进阶18 之画图并保存图片到本地
		
1.首先创建一个Bitmap图片,并指定大小: 2.在该图片上创建一个新的画布Canvas,然后在画布上绘制,并保存即可: 3.需要保存的目录File,注意如果写的目录如“/sdcard/so ...
 - Android学习笔记进阶18之画图并保存图片到本地
		
1.首先创建一个Bitmap图片,并指定大小: 2.在该图片上创建一个新的画布Canvas,然后在画布上绘制,并保存即可: 3.需要保存的目录File,注意如果写的目录如“/sdcard/so ...
 - Android学习笔记(十一)——ListView的使用(下)
		
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! ListView 这个控件比较复杂, 就是因为它有很多的细节可以优化,下面我们在试试提高它的运行效率:一.提高 ...
 - Android 学习笔记进阶十二之裁截图片
		
package xiaosi.cut; import java.io.File; import android.app.Activity; import android.content.Intent; ...
 - Android学习笔记进阶20 之得到图片的缩略图
		
<1>简介 之前往往是通过Bitmap.Drawable和Canvas配合完成,需要写一系列繁杂的逻辑去缩小原有图片,从而得到缩略图. 现在我给大家介绍一种比较简单的方法:(网上有) 在A ...
 - Android学习笔记进阶20之得到图片的缩略图
		
<1>简介 之前往往是通过Bitmap.Drawable和Canvas配合完成,需要写一系列繁杂的逻辑去缩小原有图片,从而得到缩略图. 现在我给大家介绍一种比较简单的方法:(网上有) 在A ...
 
随机推荐
- Unity 获得Android Context上下文
			
1.获取Context AndroidJavaObject context = new AndroidJavaClass ("com.unity3d.player.UnityPlayer&q ...
 - ZooKeeper 配置注意事项 zoo.cfg
			
一 平台 二 软件环境 1) JDK 1.6 以上 (最好1.7 Hadoop 某一项安装时候需要 1.7) 2) 至少 3 个节点 (2m +1 ...
 - MKVToolNix v8.2
			
32位版:http://pan.baidu.com/s/1i3s4gGd 64位版: http://pan.baidu.com/s/1gdvqbpp
 - SQL Server数据全同步及价值分析[终结版]
			
SQL Server数据全同步[终结版] 版权全部.转载请注明出处.谢谢! 经过两天的同步编写和測试.出了第一个Release版本号: 1. 本函数仅支持单向同步.即从一个主数据库想多个从数据库同步 ...
 - 识别CentOS和Ubuntu的系统版本
			
识别CentOS和Ubuntu的系统版本1.用 lsb-release#!/bin/bashInstall_LSB(){ if [ "$PM" = "yum ...
 - HMACSHA256 Class
			
https://msdn.microsoft.com/en-us/library/system.security.cryptography.hmacsha256(v=vs.110).aspx Comp ...
 - 面向对象 —— 对类(class)的理解
			
类是成员变量和成员函数的封装,封装的一个重要功能就是可见性(继承除外,当然继承是面向对象的另外一个重要特性),所谓可见性,类内可见,类外不可见.可见性保证了类型安全(type-safe) 对类进行实例 ...
 - 实现图片懒加载(lazyload)
			
对页面加载速度影响最大的就是图片,一张普通的图片可以达到几M的大小,而代码也许就只有几十KB.当页面图片很多时,页面的加载速度缓慢,几S钟内页面没有加载完成,也许会失去很多的用户. 所以,对于图片过多 ...
 - 日天的终生大事(dp)
			
日天的终生大事 题目描述 日天学长向妹子表白了,妹子说:“日天你那么聪明,回答我一个问题就答应你.你告诉我,L位K进制数有多少个?”日天表示这个问题太简单了,要求提高难度.妹子想了想说:“那么我增加一 ...
 - vi命令常用操作
			
一.vi的操作模式 vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode).在输入模式下,用户可输入文本资料.在指令模式下,可进行删除.修改等各种编辑动作. ...