1

異なる画像の 20 の URL があります。URL から 20 枚の画像をダウンロードし、グリッド ビューで表示する必要があります。私にとっては、画像コンテンツのダウンロードに時間がかかります。以下は、Image Adapter クラスで使用しているコードです。

    public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;
    if (convertView == null) {  // if it's not recycled, initialize some attributes
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(220, 200));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(1, 1, 1,0);
    } else {
        imageView = (ImageView) convertView;
    }
    imageView.setImageDrawable(GetDrawableImage(url));
    return imageView;
}
private Drawable GetDrawableImage(String zurlP)
{   InputStream InputStreamL = null;
    Drawable DrawableImageL = null;  
try {
        InputStreamL = (InputStream) new URL(zurlP).getContent();
        DrawableImageL = Drawable.createFromStream(InputStreamL, "src");
    } catch (MalformedURLException e) {          
    } catch (IOException e) {           
    }  
    return DrawableImageL;
}  

同じタスクを実行する最も簡単な方法 (時間がかからない) はありますか?

4

2 に答える 2

3

はい..、Asynctask または無痛スレッドを使用して、サーバーから大きな画像を読み込むことができます。ダウンロードしたら、画像をキャッシュします。そのために [Fedor lazylist] を使用できます (https://github.com/thest1/LazyList)

さまざまな可能性。

マルチスレッド

キャッシング

痛みの少ない糸通し

大きなビットマップの読み込み

または、単に親指の爪を使用することもできます。ビットイメージの代わりにサーバーからサムネイルを取得することを意味します。読み込みが有効になります

于 2012-11-16T07:34:14.113 に答える
2

他のスレッドで画像をダウンロードする必要があります。画像ローダーを使用できます。

于 2012-11-16T07:36:43.750 に答える