作者a1854 (朋友的朋友)
看板AndroidDev
标题Re: [问题] 想请问一下有关delay怎麽使用
时间Thu Aug 11 19:25:06 2011
※ 引述《tp6u045 (小黄~)》之铭言:
: 小弟我现在有4张图片a1.a2.a3.a4
: 想要把第一张图片显示一秒後换第二张...
: 以此类推
: 做一种类似小动画...
: 但是用Thread.sleep的话会变成整个程式Delay
: 有办法解决吗@@?
: 还是有其他可以做这种小动画的方法
: 请各位大大帮忙了.....
想要做动画可以直接用 Frame Animation
在 res/drawable/ 新增一 xml
如 img.xml:
<animation-list
xmlns:android="
http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/img0" android:duration="100" />
<item android:drawable="@drawable/img1" android:duration="100" />
<item ...>
</animation-list>
要用到动画的地方用以下的 code:
ImageView image = (ImageView)row.findViewById( ... );
image.setImageBackgroundResource(R.drawable.img);
AnimationDrawable anim = (AnimationDrawable) image.getBackground();
anim.start();
或者可以用 Handler implement 你要的 delay
handler = new Handler();
handler.post(changeImg);
Runnable changeImg {
void run() {
image.setImageResource( ... );
handler.postDelayed(changeImg, 100);
}
}
如果要用 Thread.sleep()
要利用 Timer 或新增 Thread 去做
这样才不会因为 UI Thread 停住了造成 AMR
要利用 Timer 或新 Thread update ImageView
也必须透过 Handler 来做
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.212.23
1F:推 tp6u045:恩恩感谢你唷=)非常仔细!!我会在TEST跟找资料研究一下 08/11 20:05
2F:推 tp6u045:刚刚测试出来可以了!但如果要好几个动画可以设定它的名称 08/11 20:37
3F:→ tp6u045:来呼叫他吗!? 08/11 20:37
4F:→ a1854:好几个动画就用不同的 xml 表示吧 08/11 22:39
5F:推 milochen:推 Handler 08/12 11:18