国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 定時器實現圖片的變換

2019-12-12 02:15:42
字體:
來源:轉載
供稿:網友

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 定時器的應用,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仪陇县| 睢宁县| 通城县| 虞城县| 肃南| 兴海县| 车致| 宝坻区| 始兴县| 邵武市| 迁安市| 邹城市| 阆中市| 海盐县| 伊宁市| 苍山县| 满洲里市| 保康县| 武鸣县| 特克斯县| 滦南县| 饶平县| 息烽县| 黄山市| 确山县| 沧源| 和平县| 汪清县| 日土县| 东至县| 合江县| 邵东县| 广河县| 水富县| 高州市| 靖宇县| 安岳县| 浏阳市| 甘肃省| 北票市| 略阳县|