- 浏览: 231181 次
- 性别:
- 来自: 镇江
文章分类
最新评论
-
Luozii:
安卓8.0的system.img死活解不开。http://s ...
yaffs文件打包解包工具 -
不是流氓兔:
不用设置代理了,现在官网有中文站了 http://www.my ...
myeclipse官方网站打不开解决办法 -
nicekwell:
MNC也有3位的,但我国都是2位
IMSI , MCC MNC 的概念 -
hxy1000:
android里没有模态,不过有的对话框效果类似于模态
android 模态与非模态对话框实现 -
lyx0206331:
...
window adb 安装以及usb驱动
animation 在android 系统中,是一种帧动画,前段时间遇到一个问题就是,一个完整的动画分为两部分,前面一部分,只播放一次,而后面一部分要循环播放。
第一反应,是分两个动画来做,第一部分,播放完后(仅一次),再播放后面一部分,这样来做可能有个衔接问题(没试过,有兴趣的朋友可以试一下)
后来,还是采用一个动画来做。这其中用到了java中的反射,取得了DrawableAnimation中的私有成员变量mCurFrame来记录当前帧。
具体代码,大家可以参考如下:
(1)自定义一个ImageView
主界面代码如下:
完整的实例代码在压缩包中!
第一反应,是分两个动画来做,第一部分,播放完后(仅一次),再播放后面一部分,这样来做可能有个衔接问题(没试过,有兴趣的朋友可以试一下)
后来,还是采用一个动画来做。这其中用到了java中的反射,取得了DrawableAnimation中的私有成员变量mCurFrame来记录当前帧。
具体代码,大家可以参考如下:
(1)自定义一个ImageView
package com.archermin.animationtest; import android.content.Context; import android.graphics.Canvas; import android.graphics.drawable.AnimationDrawable; import android.util.AttributeSet; import android.util.Log; import android.widget.ImageView; import java.lang.reflect.Field; public class MyAnimationImageView extends ImageView { public AnimationDrawable mAnimationDrawable; public Field field; public MyAnimationImageView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); try{ field = AnimationDrawable.class.getDeclaredField("mCurFrame"); field.setAccessible(true); int curFrame = field.getInt(mAnimationDrawable); Log.d("anim", "curFrame is : " + curFrame); if(curFrame == 17){ field.setInt(mAnimationDrawable, 6); Log.d("anim","set current animation is 6"); } }catch(Exception e){ e.printStackTrace(); } } }
主界面代码如下:
package com.archermin.animationtest; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.AnimationDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; public class AnimationTest extends Activity implements OnClickListener { /** Called when the activity is first created. */ private Context mContext; private AnimationDrawable mDownloadImageAnim; public static final String TAG = "AnimationTest"; private Button btStart; private Button btStop; private Handler mHandler; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mContext = this; btStart = (Button)findViewById(R.id.bt_start); btStart.setOnClickListener(this); btStop = (Button)findViewById(R.id.bt_stop); btStop.setOnClickListener(this); mDownloadImageAnim = (AnimationDrawable)mContext.getResources().getDrawable(R.anim.download_dialog_animation); MyAnimationImageView imageView = (MyAnimationImageView)findViewById(R.id.download_image); imageView.setBackgroundDrawable(mDownloadImageAnim); imageView.mAnimationDrawable = mDownloadImageAnim; mHandler = new Handler(); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); mHandler.postDelayed(new StartAnimationRunnable(),500); } private class StartAnimationRunnable implements Runnable{ @Override public void run() { // TODO Auto-generated method stub startAnimation(); } } private class StopAnimationRunnable implements Runnable{ @Override public void run() { stopAnimation(); } } private void startAnimation(){ if(mDownloadImageAnim != null){ mDownloadImageAnim.stop(); Log.d(TAG, "start animation "); mDownloadImageAnim.start(); } } private void stopAnimation(){ if(mDownloadImageAnim != null){ Log.d(TAG, "stop animation "); mDownloadImageAnim.stop(); } } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.bt_start: startAnimation(); break; case R.id.bt_stop: stopAnimation(); break; default: break; } } }
完整的实例代码在压缩包中!
- AnimationMutil.rar (406 KB)
- 下载次数: 6
发表评论
-
Java 理论与实践: 正确使用 Volatile 变量
2014-11-05 17:58 729转自http://www.ibm.com/developerw ... -
linux andorid apk 反编译
2012-11-19 22:02 1508反编译apk 代码 1.下载dex2jar 反编译源码 jdg ... -
window adb 安装以及usb驱动
2012-06-27 22:32 53501.在windows下安装adb 将附件解压,system3 ... -
jni 入门实例
2012-06-10 22:15 3810jni HelloWorld实例 1.编写一个HelloWo ... -
vim 添加中文文档帮助
2012-04-07 18:38 2275(整理于网络) vim中文文档的主页是: http://vi ... -
Failure [INSTALL_FAILED_OLDER_SDK]
2012-04-07 15:11 149281.安装文件与运行环境的skd不匹配 打开源码目录下的And ... -
ubuntu wine 安装source insight
2012-03-04 20:33 47271 sudo apt-get install wine 下载s ... -
yaffs文件打包解包工具
2012-03-03 18:35 13598Yaffs(Yet Another Flash File Sy ... -
android 模态与非模态对话框实现
2012-02-29 23:31 197701.模态对话框是指对话框不消失,不能对其他页面进行操作,也就是 ... -
链接手机设备安装apk或其他操作no permission解决方法
2012-02-26 21:11 1335如题 依次执行以下命令 sudo su adb kil ... -
java source Attacher 1.2
2012-02-26 21:00 1302转自 http://www.oschina.net/news ... -
android intent命名规范
2011-12-10 23:39 1360ACTION_MAIN android:name=&quo ... -
touch mode
2011-12-10 23:34 1750touch mode 是用户在交互过程中的一种视图模式。当用户 ... -
获取当前task的topactivity
2011-09-22 19:10 4574获取当前task的activity方法 ActivityM ... -
android intent 常用用法
2011-08-22 22:45 966转自 http://www.cnblogs.com/lil ... -
Android.mk 基础
2011-08-22 22:43 1105(转自 http://www.cnblogs.com/lila ... -
设置android编码格式与包的引入格式于源码一致
2011-07-17 20:44 2143andorid源码编码格式以及引入包规则 在源码根目录---d ... -
关于设置activity样式
2011-07-08 16:09 2478在android中设置activity的样式时有两种方法 1. ... -
ubuntu apk反编译
2011-07-05 10:41 1528ubuntu系统下反编译apk 1. 下载dex2jar 并 ... -
IMSI , MCC MNC 的概念
2011-07-01 11:16 9944TelephonyManager telManager ...
相关推荐
`Android Animation Demo`是一个实例,它展示了如何在Android应用中实现各种动画效果。这篇详细讲解将围绕标题和描述中的知识点展开,包括Tween Animation(补间动画)和Frame Animation(帧动画),帮助开发者理解...
Android Animation主要分为两大类:补间动画(Tween Animation)和帧动画(Frame Animation)。本资源文件主要关注补间动画,这是一种通过改变对象属性(如位置、大小、透明度等)在一段时间内平滑过渡的动画效果。 补...
在Android开发中,动画(Animation)是提升用户体验和视觉吸引力的重要工具。本"Android Animation Demo合集"旨在展示多种动画效果,包括系统内置动画以及自定义动画的实现。以下将详细解析这个Demo中的关键知识点: ...
在Android开发中,动画(Animation)是提升用户体验和视觉效果的重要工具之一,特别是在创建加载(Loading)效果时。本文将深入探讨如何使用Android Animation来实现动态的Loading效果。 一、Android Animation概述 ...
Android Animation的学习涵盖了多种技术,包括属性动画(Property Animation)、视图动画(View Animation)以及过渡动画(Transition Animation)。下面将详细介绍这些概念及其应用。 1. 视图动画(View Animation...
### Android Animation:初学者指南 #### 一、前言与背景介绍 《Android Animation:初学者指南》是一本专门针对Android平台上的动画开发技术进行深入讲解的书籍。本书旨在帮助开发者掌握Android平台上各种动画...
首先,"android Animation图片渐变动画"指的是在Android平台上,通过编程方式让图片从一种状态平滑地过渡到另一种状态,这通常涉及到Alpha(透明度)动画、Scale(缩放)动画、Rotate(旋转)或Translate(平移)...
"Android animation图片移动效果.zip"这个压缩包文件显然包含了一个关于如何在Android平台上实现图片移动动画的示例代码。在这个项目中,开发者可能通过XML或者Java代码来创建动画效果,使得图片能够在屏幕上平滑地...
综上所述,Androidanimation图片移动效果涉及了Android动画的多个方面,从简单的视图动画到复杂的属性动画和自定义动画,都可以实现丰富的动态效果。这个压缩包中的示例代码可能涵盖了这些技术,通过学习和实践,...
"android animation"这个主题主要关注的是Android系统中的动画实现,特别是与加载动画相关的技术。加载动画通常用于指示应用程序正在进行后台处理,如数据加载、网络请求或者计算等,给用户以视觉反馈,提高应用的可...
在Android开发中,动画(Animation)是提升用户体验和视觉效果的重要手段之一。"Android animation图片移动效果.rar"这个压缩包包含的资源显然与在Android应用中实现图片移动的动画效果有关。下面,我们将深入探讨...
在Android开发中,动画(Animation)是提升用户体验和视觉效果的重要工具。这个“Android Animation动画Demo源码”压缩包提供了一系列示例代码,用于展示Android系统中不同类型的动画效果及其实现方式。通过深入理解...
这个压缩包"Android animation的结合蝴蝶飞的动画,使用动画里面的几种类型-IT计算机-毕业设计.zip"包含了一个Android应用源码Demo,专门展示了如何利用Android内置的动画机制创建一个蝴蝶飞舞的效果。这个案例非常...
Android Animation之TranslateAnimation(平移动画) Android Animation中的一种常用动画效果是TranslateAnimation(平移动画),它可以使图像或其他视图从一个位置移动到另一个位置。下面将详细介绍...