4
    final Handler downloadHandler =  new Handler() {
        public void handleMessage(Message msg) {
            Log.d("Yoon", "Handler");
            MCImageDisposableView iconView = new MCImageDisposableView(profileSprite, tag);
            iconView.setScale(0.5f);
            iconView.setPosition(17, 145);
            addActor(iconView);
        }
    };

    Thread sb = new Thread(new Runnable() {
        @Override
        public void run() {
            Log.d("Yoon", "Thread");
            profileSprite = BitmapDownloader.downloadSprite(Utils.getImageURL(MyChoiceApp.shared.context, aid));
            downloadHandler.sendEmptyMessage(0);
        }
    });

    sb.start();

ハンドラーなしでスレッドを使用する場合は、アクター (MCImageDisposableView にはスプライトがあります) の画像を変更します。

しかし、イメージは正しくありません。私のURLに画像がロードされていません。画像はテクスチャアトラスにロードされています

MCImageDisposableView クラスには画像ダウンロード機能があります。それはうまく機能します...スレッドを使用しない場合。

非同期イメージをロードするにはどうすればよいですか?

4

2 に答える 2

1

MyLazyImageListこの目的のために作成しました。に基づいていScrollPaneます。以下のようになります。

ここに画像の説明を入力

必要に応じてコードを変更できます。ソースコードはここにあります: http://pastebin.com/JPWTB9PFまたはここ: http://pastebin.com/hi0v0nQy

于 2013-04-11T03:31:03.980 に答える
1

これには遅延読み込みを実装する必要があります。

遅延読み込みについては、以下のリンクを参照してください。

ListView での画像の遅延ロード

これを行うための基本的な考え方は次のとおりです。

addActor(){
   //if you need to download image from url
   downloadImageFromUrl(actorImageView, url);
}

downloadIamgeFromUrl(ImageView actorImageView, String url){
    //ToDo : create Thread to download image from server
    //ToDo : Once done, set this image to actorImageView  in UI thread as
    //runOnUiThread(new Runnable() {
        @Override
        public void run() {
            actorImageView  .setImageBitmap(bitmap);
        }
    });
}
于 2012-07-04T11:51:36.547 に答える