Android 定时器实现图片的变换
程序员文章站
2023-12-11 20:51:52
android 定时器实现图片的变换
在android中,要让每秒进行一次ui更新,就需要利用到定时器和handler,message的结合,如果不使用handler就不...
android 定时器实现图片的变换
在android中,要让每秒进行一次ui更新,就需要利用到定时器和handler,message的结合,如果不使用handler就不能达到更新ui的效果,我的理解是handler中存在一个队列问题,可以保证不产生阻塞。
代码如下:
import android.os.bundle; import android.os.handler; import android.os.message; import android.util.log; import android.widget.imageview; import android.widget.linearlayout; public class mainactivity extends activity { private linearlayout linearlayout; private imageview main_imageview; private int i = 0; timer timer = new timer(); private handler handler = new handler() { @override public void handlemessage(message msg) { log.e("@@@", i + ""); //index=msg.what; if (i > 6) { i = 0; } else { switch (i) { case 1: main_imageview.setimageresource(r.drawable.loader_frame_1); break; case 2: main_imageview.setimageresource(r.drawable.loader_frame_2); break; case 3: main_imageview.setimageresource(r.drawable.loader_frame_3); break; case 4: main_imageview.setimageresource(r.drawable.loader_frame_4); break; case 5: main_imageview.setimageresource(r.drawable.loader_frame_5); break; case 6: main_imageview.setimageresource(r.drawable.loader_frame_6); break; default: break; } linearlayout.invalidate(); } super.handlemessage(msg); } }; /** called when the activity is first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); initview(); } public void initview() { linearlayout = (linearlayout) findviewbyid(r.id.background_main); main_imageview = (imageview) findviewbyid(r.id.main_imageview); timer.scheduleatfixedrate(new timertask() { @override public void run() { // todo auto-generated method stub i++; message mesasge = new message(); mesasge.what = i; handler.sendmessage(mesasge); } }, 0, 500); } @override protected void ondestroy() { // todo auto-generated method stub timer.cancel(); super.ondestroy(); } }
在这段代码中有两点需要注意:
第一:在更新完图片后,需要刷新整个布局,linearlayout.invalidate();
第二:在用完定时器timer后,要在activity被干掉的同时销毁定时器timer。
以上就是android 定时器的应用,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!