android中view的兩種更新機制

2021-07-16 19:13:49 字數 748 閱讀 3960

1,利用invalidate()重新整理介面

// 在oncreate()中開啟執行緒

new thread(new gamethread()).start();

// 例項化乙個handler

handler myhandler = new handler()

super.handlemessage(msg);}};

class gamethread implements runnable catch (interruptedexception e) }}

}

2,使用postinvalidate()重新整理介面

class gamethread implements runnable  catch (interruptedexception e) 

mgameview.postinvalidate();}}

}// view 類中postinvalidate()方法原始碼如下,可見它也是用到了handler的:

public void postinvalidate()

public void postinvalidatedelayed(long delaymilliseconds)

}

除了oncreate()是執行在ui執行緒上的,其實其他大部分方法都是執行在ui執行緒上的,其實其實只要你沒有開啟新的執行緒,你的**基本上都執行在ui執行緒上

**:

兩種獲取view的bitmap的方法

在開發中有時候需要獲取到乙個view當前的影象資訊,這個view可能是乙個單一的view,也可能是多個view組成的viewgroup,所以不能通過簡單的getbackground的方法獲取到這個影象資訊。下面提供兩個比較方便方法可以獲取這個資訊 通過canvas複製view的bitmap priv...

自定義View的兩種方式

一 xib自定義view 1.思路 2.關鍵 1 import23 class45 inte ce67 8 模型資料9 1113 14 15 通過模型資料來建立乙個view 16 1819 end 1 import 2 import 34 inte ce 5 property weak,nonato...

android 兩種非同步方式

使用asynctask 開啟子執行緒獲取伺服器資料,更新介面ui 非同步任務 後台執行,耗時的操作都放在這裡,相當於thread的run方法 override protected string doinbackground string.params 在執行後台任務之後,可以在這更改ui介面,相當於...