Асинхронная выборка удаленных изображений для ImageAdapter - PullRequest
1 голос
/ 08 июня 2011

У меня есть реализация ImageAdapter галереи Android для getView (), которая выглядит следующим образом:

public View getView(int arg0, View arg1, ViewGroup arg2) {
    String strURL = "http://app1.exactdev.co.za/android/celebs/celeb" + (arg0+1) + ".jpg";      
    Bitmap bm = RemoteBitMapHelper.getRemoteBitMap(strURL); //synchronous request               

    ImageView i = new ImageView(ctx);       
    i.setImageBitmap(bm); 
    return i;
}

Как я могу заставить getView выполнять свою работу асинхронно?

1 Ответ

1 голос
/ 08 июня 2011

Простой ответ: вы можете поместить его в AsyncTask.Что-то вроде следующего (не проверено)

public View getView(int arg0, View arg1, ViewGroup arg2) {

    final ImageView i = new ImageView(ctx);
    String url = "http://app1.exactdev.co.za/android/celebs/celeb" + (arg0 + 1) + ".jpg";

    new AsyncTask<String, Void, Bitmap>() {

        @Override
        protected Bitmap doInBackground(String... urls) {
            return RemoteBitMapHelper.getRemoteBitMap(urls[0]);
        }

        @Override
        protected void onPostExecute(Bitmap result) {
            if (result != null) {
                i.setImageBitmap(result);
            }
        }

    }.execute(url);

    return i;
}
...