- 浏览: 79444 次
- 性别:
- 来自: 广州
最新评论
-
Tony_Lee-S:
已经说得很明白了吧?“把list强转成Serializable ...
在android中用 Intent 传递 List类型的数据(转) -
zhiduo5:
Activity与Service之间传递参数的介质这个怎么弄啊 ...
在android中用 Intent 传递 List类型的数据(转) -
mathlove:
很有用的内容
一个Android下的自动下载歌词的代码(转)
Android有两种动画,一种是tweened animation(渐变动画) ,主要用于控件的,大小缩放,透明度等,另一种是frame by frame(逐帧动画),也就是我今天要讨论的动画。逐帧动画顾名思义就是一帧一帧的播放动画,就像动画片的播放原理一样,它是通过不挺得替换图片,当替换图片的速度大于人眼的反应时间时就会给人一种画面在动的感觉。
废话不多说直接上代码:
1:在res文件夹下面建立一个文件夹anim;
2:在anim文件夹下建立一个文件firefox_animation.xml(名字自己任意定义)如下:
说明:你想变多少张图片就要有几个item,在每一个item中 duration是定义这张图片存在的时间以毫秒为单位,drawable是图片的路径
3:定义布局文件
4:Activy中的代码:
5:完成点击start按钮动画开始。
问题来了,如果我想不需要点击按钮,一进入Activity就让动画动起来怎么办?
聪明的同学肯定会说直接把startAnimation()方法放到onCreate()方法中不就可以了吗,甚至还会有同学说在onCreate()方法中代码只会在创建的时候执行,应该是放到onResume()方法中,这样无论怎么样代码都会执行,动画效果都会出来,事实上呢?要相信科学少年,结果是什么,勤奋的同学自己44就知道了。
如果想要在一进入页面的时候就执行动画我们就要对代码做一个小小的修改,同时我们去掉了那两个按钮。
其他的部分不变代码如下:
运行之后您会惊喜的发现,动画执行了。
小弟浅见:应该是在onCreate()方法中AnimationDrawable虽然初始化了,但是并没有完全,动画只会走一帧,永远停在第一张图片上,加入ViewTreeObserver观察者,ViewTreeObserver能够一直监听LayoutTree中的布局绘制情况,而OnPreDrawListener他在图片初始化完了之后会自动执行回调方法OnPreDrawListener,这样动画就动起来。
以上就是我使用逐帧动画时的一些小心得,有什么不对的地方还请各位大虾指点,谢谢。
转自:http://blog.csdn.net/gzhan1603/article/details/7576667
废话不多说直接上代码:
1:在res文件夹下面建立一个文件夹anim;
2:在anim文件夹下建立一个文件firefox_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:duration="300" android:drawable="@drawable/home_hotapp" /> <item android:duration="300" android:drawable="@drawable/home_hotapp_click" /> </animation-list>
说明:你想变多少张图片就要有几个item,在每一个item中 duration是定义这张图片存在的时间以毫秒为单位,drawable是图片的路径
3:定义布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:id="@+id/imageview1" android:layout_width="100px" android:layout_height="100px" android:src="@anim/firefox_animation"> </ImageView> <Button android:id="@+id/start" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Start"> </Button> <Button android:id="@+id/start_once" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Start_once"> </Button> </LinearLayout>
4:Activy中的代码:
public class MainA extends Activity { private AnimationDrawable draw = null; private Button start = null; private Button startOnce = null; private boolean isoneshot = true; public void onCreate(Bundle bundle) { super.onCreate(bundle); this.setContentView(R.layout.main); ImageView view = (ImageView)findViewById(R.id.imageview1); draw = (AnimationDrawable)view.getDrawable(); start = (Button)findViewById(R.id.start); start.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub startAnimation(); } }); startOnce = (Button)findViewById(R.id.start_once); startOnce.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub if(isoneshot) { startOnce.setText("startOnce"); } else { startOnce.setText("Play Repace"); } draw.setOneShot(isoneshot); isoneshot = !isoneshot; } }); } private void startAnimation() { if(draw.isRunning()) { draw.stop(); } else { draw.stop(); draw.start(); } } }
5:完成点击start按钮动画开始。
问题来了,如果我想不需要点击按钮,一进入Activity就让动画动起来怎么办?
聪明的同学肯定会说直接把startAnimation()方法放到onCreate()方法中不就可以了吗,甚至还会有同学说在onCreate()方法中代码只会在创建的时候执行,应该是放到onResume()方法中,这样无论怎么样代码都会执行,动画效果都会出来,事实上呢?要相信科学少年,结果是什么,勤奋的同学自己44就知道了。
如果想要在一进入页面的时候就执行动画我们就要对代码做一个小小的修改,同时我们去掉了那两个按钮。
其他的部分不变代码如下:
publicclass Main2 extends Activity { private AnimationDrawable draw = null; publicvoid onCreate(Bundle bundle) { super.onCreate(bundle); this.setContentView(R.layout.main); ImageView view = (ImageView) findViewById(R.id.imageview1); view.setBackgroundResource(R.anim.firefox_animation); draw = (AnimationDrawable) view.getBackground(); view.getViewTreeObserver().addOnPreDrawListener(opdl); } OnPreDrawListener opdl=new OnPreDrawListener(){ publicboolean onPreDraw() { draw.start(); returntrue; } }; }
运行之后您会惊喜的发现,动画执行了。
小弟浅见:应该是在onCreate()方法中AnimationDrawable虽然初始化了,但是并没有完全,动画只会走一帧,永远停在第一张图片上,加入ViewTreeObserver观察者,ViewTreeObserver能够一直监听LayoutTree中的布局绘制情况,而OnPreDrawListener他在图片初始化完了之后会自动执行回调方法OnPreDrawListener,这样动画就动起来。
以上就是我使用逐帧动画时的一些小心得,有什么不对的地方还请各位大虾指点,谢谢。
转自:http://blog.csdn.net/gzhan1603/article/details/7576667
发表评论
-
SQLite多线程读写实践及常见问题总结(转)
2013-02-07 11:04 2958基本操作的部分,大家都很熟悉了,这里根据个人切身经验,总结了 ... -
android内存溢出的解决方法(转)
2013-02-07 11:23 7581. 当项目中包含大量图片,或者图片过大 方法1:等比例缩 ... -
android中的跨进程通信的实现——远程调用过程和aidl(转)
2013-02-07 19:35 1296android在设计理念上强调组件化,组件之间的依赖性很小。 ... -
在EditText/TextView中插入表情图片、样式、下划线等(转)
2012-08-22 12:01 1557EditText: 通常用于显示文字,但有时候也需要在文字中 ... -
自定义Tab选项卡(转)
2012-08-21 08:44 1450效果: 代码: import android.app. ... -
android设置button透明度(转)
2012-08-18 22:09 1190Button或者ImageButton的背景设为透明或者半透明 ... -
Android中的TabHost(转)
2012-08-17 14:50 2166介绍 有时,我们想在一个window中显示多个视图,这时就需 ... -
Android开发之蓝牙(Bluetooth)操作(二)--修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备(转)
2012-08-15 16:54 1336一. 修改本机蓝牙设备的可见性 二. 扫描周围可用的蓝牙设备 ... -
Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备(转)
2012-08-15 16:49 1646一. 什么是蓝牙(Bluetooth)? 1.1 BuleT ... -
一个Android下的自动下载歌词的代码(转)
2012-08-15 13:41 10921. 原理是用Baidu音乐搜索的连接,拼参数进去读取歌词。 ... -
ViewPager多页面滑动切换以及动画效果(转)
2012-08-14 16:55 1843一、首先,我们来看一下效果图,这是新浪微博的Tab滑动效果。我 ... -
Android的Handler总结(转)
2012-08-14 14:18 829一、Handler的定义: 主要接受子线程 ... -
AsyncTask的用法(转)
2012-08-14 14:11 861在开发Android应用时必须遵守单线程模型的原则: Andr ... -
android 扫描SD卡与系统文件(转)
2012-08-11 16:12 1264当手机或模拟器开机时,会调用android的MediaScan ... -
android 怎样为多媒体文件生成缩略图(转)
2012-08-10 17:11 12081、Video 对于视频,取第一帧作为缩略图,也就是怎样从fi ... -
TextView 实现自动换行(转)
2012-08-10 16:44 1361package com.liao.intentservice; ... -
android:屏幕自适应(转)
2012-08-10 16:10 1361demo下载: http://www.eoeandroid.c ... -
listview加载性能优化ViewHolder (转)
2012-07-28 15:16 1416在android开发中Listview是一个很重要的组件,它以 ... -
android 应用程序Activity之间数据传递与共享的几种途径(转)
2012-07-19 11:03 14711.基于消息的通信机制 Intent ---boudle , ... -
Android进程间通信--消息机制及IPC机制实现(转)
2012-07-19 10:51 797一、概念及说明 Android ...
相关推荐
android 逐帧动画实现 源码 android 逐帧动画实现 源码 android 逐帧动画实现 源码 android 逐帧动画实现 源码 android 逐帧动画实现 源码
android 逐帧动画,里面有三张图片来回切换,一个持续时间为50毫秒的动画帧
逐帧动画 可以正序和倒叙看 适合动画的入门学习
Android 逐帧动画源码
android 动画 资源,一步一步实现android FrameAnimation 动画,让你不再为动画烦恼。
Android 逐帧动画源码.zip源码资源下载Android 逐帧动画源码.zip源码资源下载
打开Android Studio软件,找到目录res下面子目录drawable目录,将动画图片素材拷贝到该目录下,本节课中,图片素材为img01至img06。;将鼠标选中drawable目录,点击鼠标右键。;在打开的 New Drableable Resource File...
Android 逐帧动画源码.rar
Android逐帧动画源码.zip
Android逐帧(Frame)动画
逐帧动画(Frame-by-frame Animations)顾名思义就是一帧接着一帧的播放图片,就像放电影一样。可以通过xml实现也可以通过java代码实现。逐帧动画适合实现比较简单的动画效果,如果要实现复杂动画不太建议使用逐帧...
Android下逐帧动画的Demo,详细参见博客:http://www.cnblogs.com/plokmju/p/android_AnimationDrawable.html
Android程序研发源码Android 逐帧动画源码.zip
Android 逐帧动画源码.zip项目安卓应用源码下载Android 逐帧动画源码.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
逐帧动画示例代码 导入就能直接运行