Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> 利用Handler更新Android UI的另一種方法

利用Handler更新Android UI的另一種方法

編輯:Android開發實例

其實文字游戲程序很簡單,就是一個view和一個Activity,在利用下handier和postInvalidate()更新UI
我要實現的是一個藍色正方形向右移出屏

 

調用Handler.post(Runnable r)方法,Runnable運行在UI所在線程,所以可以直接調用View.invalidate()
 1 package com.Test.androidtest;   
2
3  import android.app.Activity;
4  import android.content.Context;
5  import android.graphics.Canvas;
6  import android.graphics.Color;
7  import android.graphics.Paint;
8  import android.os.Bundle;
9  import android.os.Handler;
10 import android.view.View;
11
12 public class TestHandler extends Activity {
13 private MyView myView;
14 private Handler mHandler;
15 public void onCreate(Bundle savedInstanceState) {
16 super.onCreate(savedInstanceState);
17 myView = new MyView(this);
18 mHandler = new Handler();
19 mHandler.post(new Runnable(){
20 @Override
21 public void run() {
22 myView.invalidate();
23 mHandler.postDelayed(this, 5);
24 }
25 });
26 setContentView(myView);
27 }
28
29 class MyView extends View{
30 private float x = 0f;
31 public MyView(Context context) {
32 super(context);
33
34 }
35 protected void onDraw(Canvas canvas) {
36 super.onDraw(canvas);
37 x+=1;
38 Paint mPaint = new Paint();
39 mPaint.setColor(Color.BLUE);
40 canvas.drawRect(x, 40, x+40, 80, mPaint);
41 }
42
43 }
44 }
45

 

在新線程裡更新UI,可以直接postInvalidate()

 

 1 public void onCreate(Bundle savedInstanceState) {       
2 super.onCreate(savedInstanceState);
3 this.requestWindowFeature(Window.FEATURE_NO_TITLE);
4
5 myView = new MyView(this);
6 this.setContentView(this.myView);
7 new Thread(new myThread()).start();
8 }
9
10 class myThread implements Runnable {
11 public void run() {
12 while (!Thread.currentThread().isInterrupted()) {
13 try {
14 myView.postInvalidate();
15 Thread.sleep(100);
16 } catch (InterruptedException e) {
17 Thread.currentThread().interrupt();
18 }
19 }
20 }
21 }
22

 

轉自:http://www.cnblogs.com/jk1001/archive/2010/07/23/1783726.html

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved