19

カスタムしてImageViewます。その方法の 1 つは、URL から画像をロードすることです。そして、スレッドでビットマップを取得し、UI スレッドでビットマップをロードしたいと考えています。

runOnUIThread()ビットマップの描画を呼び出すにはどうすればよいですか?

ある種の組み込み関数はありますか?またはHandler、コンストラクターで を作成し、UI スレッドでランナブルを実行するために使用する必要がありますか?

4

3 に答える 3

55

経由でイメージをダウンロードし、そのonPostExecuteメソッドAsyncTaskでビューに設定します

また

別の画像ダウンロード スレッドから、常にUI スレッドで実行されるpostメソッドを使用します。ViewRunnable

yourImageView.post(new Runnable() {
    @Override
    public void run() {
        // set the downloaded image here

    }
});
于 2012-06-18T15:37:54.260 に答える
6

次のようなことができます。

 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 のように、アクティビティの外で機能します。

于 2013-04-16T23:40:09.087 に答える
2

AsyncTask を拡張するクラスを作成します。コンストラクターで ImageView を渡します。doInBackground メソッドで、イメージをダウンロードします。postExecute メソッドで、イメージを ImageView に設定します。

于 2012-06-18T15:45:34.907 に答える