Android 定時(shí)器實(shí)現(xiàn)圖片的變換
Android 定時(shí)器實(shí)現(xiàn)圖片的變換
在Android中,要讓每秒進(jìn)行一次ui更新,就需要利用到定時(shí)器和handler,message的結(jié)合,如果不使用handler就不能達(dá)到更新ui的效果,我的理解是handler中存在一個(gè)隊(duì)列問題,可以保證不產(chǎn)生阻塞。
代碼如下:
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(); } }
在這段代碼中有兩點(diǎn)需要注意:
第一:在更新完圖片后,需要刷新整個(gè)布局,linearlayout.invalidate();
第二:在用完定時(shí)器timer后,要在Activity被干掉的同時(shí)銷毀定時(shí)器timer。
以上就是Android 定時(shí)器的應(yīng)用,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- Android使用Handler實(shí)現(xiàn)定時(shí)器與倒計(jì)時(shí)器功能
- Android定時(shí)器和倒計(jì)時(shí)實(shí)現(xiàn)淘寶秒殺功能
- 詳解Android實(shí)現(xiàn)定時(shí)器的幾種方法
- Android定時(shí)器Timer的停止和重啟實(shí)現(xiàn)代碼
- Android實(shí)現(xiàn)定時(shí)器的五種方法實(shí)例詳解
- Android 實(shí)現(xiàn)定時(shí)器的四種方式總結(jié)及實(shí)現(xiàn)實(shí)例
- Android中使用定時(shí)器的三種方法
- Android定時(shí)器實(shí)現(xiàn)的幾種方式整理及removeCallbacks失效問題解決
- 基于Android中實(shí)現(xiàn)定時(shí)器的3種解決方法
- Android定時(shí)器實(shí)現(xiàn)定時(shí)執(zhí)行、重復(fù)執(zhí)行、定時(shí)重復(fù)執(zhí)行、定次數(shù)執(zhí)行的多種方式
相關(guān)文章
基于Viewpager2實(shí)現(xiàn)登錄注冊引導(dǎo)頁面
這篇文章主要為大家詳細(xì)介紹了基于Viewpager2實(shí)現(xiàn)登錄注冊引導(dǎo)頁面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09android自定義控件實(shí)現(xiàn)簡易時(shí)間軸(1)
這篇文章主要為大家詳細(xì)介紹了android自定義控件實(shí)現(xiàn)簡易時(shí)間軸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Android應(yīng)用創(chuàng)建桌面快捷方式代碼
這篇文章主要為大家詳細(xì)介紹了Android應(yīng)用創(chuàng)建桌面快捷方式代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09Android開發(fā)實(shí)現(xiàn)簡單的觀察者與被觀察者示例
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)簡單的觀察者與被觀察者,簡單描述了觀察者模式的概念、原理并結(jié)合實(shí)例形式分析了Android實(shí)現(xiàn)觀察者模式的簡單操作技巧,需要的朋友可以參考下2017-11-11android 字體顏色選擇器(ColorPicker)介紹
本文將詳細(xì)介紹android 字體顏色選擇器(ColorPicker)需要了解更多的朋友可以參考下2012-11-11Android 游戲開發(fā)之Canvas畫布的介紹及方法
Android 游戲開發(fā)之Canvas畫布的介紹及方法,需要的朋友可以參考一下2013-06-06Android教你如何發(fā)現(xiàn)APP卡頓的實(shí)現(xiàn)
這篇文章主要介紹了Android教你如何發(fā)現(xiàn)APP卡頓的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Android App在ViewPager中使用Fragment的實(shí)例講解
這篇文章主要介紹了Android App在ViewPager中使用Fragment的實(shí)例講解,ViewPager組件主要被用來制作滑動(dòng)切換效果,需要的朋友可以參考下2016-03-03