项目开发用到了AnimationDrawable,调用start后没有运行,很纳闷。google搜了下。记录一下。
这个AnimationDrawable.start不能直接写在onClick,onStart,onResume里面,是无效的,无法启动动画,只能写在比如事件监听当中。
以下有几种运行AnimationDrawable的方式。
第一种:在事件监听中start AnimationDrawable 下面一个例子举例 当一个视图树将要绘制时产生事件
[java] view plaincopy
AnimationDrawable ad;
ImageView iv = (ImageView) findViewById(R.id.animation_view);
iv.setBackgroundResource(R.drawable.animation);
ad = (AnimationDrawable) iv.getBackground();
iv.getViewTreeObserver().addOnPreDrawListener(opdl);
OnPreDrawListener opdl=new OnPreDrawListener(){
@Override
public boolean onPreDraw() {
ad.start();
return true; //注意此行返回的值
}
};
第二种方式启动动画:(在Activity启动时会自动运行动画)
[java] view plaincopy
ImageView image = (ImageView) findViewById(R.id.animation_view);
image.setBackgroundResource(R.anim.oldsheep_wait);
animationDrawable = (AnimationDrawable) image.getBackground();
RunAnim runAnim=new RunAnim();
runAnim.execute("");
class RunAnim extends AsyncTask<String, String, String>
{
@Override
protected String doInBackground(String... params)
{
if (!animationDrawable.isRunning())
{
animationDrawable.stop();
animationDrawable.start();
}
return "";
}
}
第三种方式启动动画:(在Activity启动时会自动运行动画)
[java] view plaincopy
ImageView image = (ImageView) findViewById(R.id.animation_view);
image.setBackgroundResource(R.anim.oldsheep_wait);
animationDrawable = (AnimationDrawable) image.getBackground();
image.post(new Runnable()
{
@Override
public void run()
{
animationDrawable.start();
}
});
第四种方式启动动画:(在Activity启动时会自动运行动画)
[java] view plaincopy
ImageView image = (ImageView) findViewById(R.id.animation_view);
image.setBackgroundResource(R.anim.oldsheep_wait);
animationDrawable = (AnimationDrawable) image.getBackground();
@Override
public void onWindowFocusChanged(boolean hasFocus)
{
animationDrawable.start();
super.onWindowFocusChanged(hasFocus);
}
- 浏览: 123009 次
文章分类
- 全部博客 (121)
- confluence (1)
- android (77)
- PHP (6)
- java (21)
- mysql (3)
- dos (1)
- 传感器 (2)
- 获取电话薄信息 (3)
- 正则表达式 (1)
- 网络 (1)
- 蓝牙 (1)
- 图片 (4)
- intent (3)
- 注意 (1)
- eclipce (1)
- plugins (1)
- dialog (4)
- zip (1)
- sd卡 (1)
- ui (1)
- Camera (1)
- draw (1)
- activity (2)
- launchMode (1)
- 安全 (1)
- Button (1)
- ImageTextButton (1)
- paint (1)
- network (1)
- popupwindow (1)
- jquery (1)
- ant (1)
- notifaction (1)
- Rating (1)
- ListView (3)
- editText (1)
- doc (1)
- jdk (1)
- animation (1)
- sign (1)
- 签名 (1)
- 广播 (1)
- textview (4)
- 删除线 (1)
- 城市列表 (1)
- IDE (1)
- Eclipse (1)
- pixels (2)
- px (1)
- 静默安装 (1)
- Android截屏 (1)
- eclipcetheme (1)
- scroll (1)
- ActivityGroup (1)
- sqlite (1)
- webview (3)
- PullToRefreshListView (1)
- cache (1)
- java引用 (1)
- 命名空间 (1)
- httpClient (1)
- 开源控件 (0)
- sms (1)
- 文字水平滚动 (1)
- 正则 (1)
- 理论知识 (1)
- 属性 (0)
- openfire (1)
- 面试 (1)
- 继承的优缺点 (1)
- PowerDesigner (1)
- 数字格式化 (1)
- andriod (1)
- webservice (1)
- 记录 (0)
- share (0)
- 开源 (1)
最新评论
发表评论
-
使用Android进行分享
2014-04-21 14:22 01.简单的分享文本 Intent sendIntent = ... -
android:descendantFocusability用法简析
2013-11-25 10:11 0开发中很常见的一个问题,项目中的listview不 ... -
Android 的应用程序的优先级和进程状态
2013-11-04 12:29 2201回收资源的时候,进 ... -
去掉listview顶部和底部阴影(高光部分)
2013-11-13 11:04 652/** * 去掉listview顶部和底部阴影(高光 ... -
Android的5个进程等级 .
2013-10-22 17:00 654来自:http://blog.csdn.net/ ... -
使用TextView 使用文字水平滚动
2013-09-26 15:12 611/** * * <b>功能名:< ... -
SMS研究(转)记录地址
2013-09-22 15:20 689拦截短信 作者:bingzhi更新于 07月26日访问(70 ... -
ListView 隐藏滚动条及基本属性
2013-09-09 22:25 1209由于这两天在做listView的东西,所以整理出来一些我个 ... -
android 编辑框过滤文本
2013-09-05 13:48 520public class EditOnKeyListener ... -
HttpClient The target server failed to respond
2013-09-04 17:50 14729关于HttpClient 出现 The target ser ... -
android webview的三种加载方式
2013-08-28 17:20 529//打开本包内asset目录下的index.html文件 ... -
TextView的一些高级显示
2013-08-20 10:41 3861. 自定义字体可 ... -
命名空间
2013-08-19 18:18 7201.需要在AndroidManifest.xml添加自己的 ... -
java 4种引用
2013-08-16 09:20 6861.强引用本章前文介绍的引用实际上都是强引用,这是使用最普遍 ... -
清除 webView 存在的缓存!
2013-08-15 17:27 738CookieSyncManager.createInstan ... -
使用 PullToRefreshListView 分页问题.
2013-08-15 12:05 2245使用PullToRefreshListView分页刷新问题, ... -
清除webview产生的缓存
2013-08-15 10:03 1501/** * 删除应用缓存(/data/data/包名/ ... -
读取assets或者raw目录下的sqlite数据库
2013-08-14 17:46 956public class DbManager { pr ... -
使用 ActivityGroup 加载多个Activity
2013-08-14 15:13 6561.mTabClassArray 数组中存放的是Activi ... -
监听 ScrollView 滑动到底部
2013-08-13 15:52 8971.给ScrollView添加 OnTouchListene ...
相关推荐
NULL 博文链接:https://gqdy365.iteye.com/blog/2179048
AnimationDrawable是实现Drawable animations的基本类。推荐用XML文件的方法实现Drawable动画,不推荐在代码中实现。这种XML文件存放在工程中res/drawable/目录下。XML文件的指令(即属性)为动画播放的顺序和时间间隔...
介绍了Android中AnimationDrawable使用的简单实例,有需要的朋友可以参考一下
帧动画太多造成内存泄漏问题,内含所需的JAR包:org.apache.commons.io.IOUtils,将Inputstream转为byte字节数组,减少内存泄漏 和关键代码,仅供参考,如有建议请在下方留言或添加咨询~~~
展示一系列的drawable动画:创建一个drawable动画,你要创建一个XML文件,该文件列出了组成动画的drawable。
NULL 博文链接:https://sunzone.iteye.com/blog/1998083
使用系统带的AnimationDrawable类来播放动画必须将你需要播放的动画打成一帧一帧的图片保存起来,然后在xml文件中表示出每帧图片,这样就可以提前将资源图片加载内存中了。...
使用AnimationDrawable的动画效果
主要为大家详细介绍了Android之AnimationDrawable简单模拟动态图的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
android listView复用导致item上面动画的错乱。网上大部分都是写的item上面显示静态图片的例子,我这个是解决显示动态图片时复用导致的动画显示错乱问题。问题描述:假如一屏可以显示10个item项,如果第一个正在播放...
DrawableAnimation帧动画的Demo。其实不下载用我的代码,自己随便加上图片一样可以在你的android项目中运行。我想不要资源分了,但是现在好像不能设置为0资源分啊,最小就是2。请理解
点击动画AnimationDrawable、无限转动RotateAnimation
Android下逐帧动画的Demo,详细参见博客:http://www.cnblogs.com/plokmju/p/android_AnimationDrawable.html
Android 播放Gif图片动画【源代码】,在Android 中是不支持直接使用Gif 图片关联播放帧动画,Android 提供了另外一种解决的办法,就是使用AnimationDrawable 这一函数使其支持逐帧播放,我们使用一款动画分割软件...
上次提供了Animation动画其一Tween补间动画的源代码,这次提供其二Frame动画的源代码(以xml形式实现的Demo。笔者资源中另有以直接编码的形式实现Frame动画的Demo)。
1.4.2 通过ADT运行Android应用 23 1.5 Android应用结构分析 24 1.5.1 创建一个Android应用 24 1.5.2 自动生成的R.java 26 1.5.3 res目录说明 27 1.5.4 Android应用的清单文件: AndroidManifest.xml ...
import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.view.WindowManager; ...
用SurfaceView来播放帧动画,避免在很多帧的情况下使用AnimationDrawable带来的OOM和卡顿问题。支持任意多帧的动画。 使用 Usage Gradle引入 implementation 'com.yuyashuai.android:silkyanimation:1.1.6' 用法 ...