我正在自定義ImageView
。其中一種方法是從URL加載圖像。我想檢索線程中的位圖並在UI線程中加載位圖。runOnUiThread視圖內
我怎樣才能讓runOnUIThread()
調用繪製位圖?
是否有某種內置函數?或者我應該在構造函數中創建一個Handler
並將其用於在UI線程中運行runnables?
我正在自定義ImageView
。其中一種方法是從URL加載圖像。我想檢索線程中的位圖並在UI線程中加載位圖。runOnUiThread視圖內
我怎樣才能讓runOnUIThread()
調用繪製位圖?
是否有某種內置函數?或者我應該在構造函數中創建一個Handler
並將其用於在UI線程中運行runnables?
通過AsyncTask
下載圖片,並在其onPostExecute方法設置你的看法
OR
從單獨的圖像下載線程使用的View
的後方法將總是在運行其Runnable
UI線程:
yourImageView.post(new Runnable() {
@Override
public void run() {
// set the downloaded image here
}
});
更多信息在這裏:http://stackoverflow.com/q/10558208 – cyrilchampier
創建一個從AsyncTask擴展的類。在構造函數中傳遞ImageView。在doInBackground方法中,下載圖像。在postExecute方法中,將圖像設置爲ImageView。
你可以做這樣的事情:
new Thread(new Runnable() {
public void run() {
final Bitmap bm = getBitmapFromURL(myStation.getStation().imageURL);
((Activity) context).runOnUiThread(new Runnable() {
public void run() {
icon.setImageBitmap(bm);
}
});
}
}).start();
這將工作以外的活動,如在ListAdapter。
跟隨Handler。 runOnUIThread是一個Activity的方法,如果我沒有錯誤 – Rich