Просмотр галереи Android "заикается" с адаптером отложенной загрузки изображений

Я хотел бы создать адаптер отложенной загрузки для использования с виджетом Gallery .

] То есть getView () немедленно возвращает ImageView , а позже какой-то другой механизм асинхронно вызывает его метод setImageBitmap () . Я сделал это, создав «ленивый» ImageView , который расширяет ImageView .

public class GalleryImageView extends ImageView {

    // ... other stuff here ...

    public void setImage(final Looper looper, final int position) {

    final Uri uri = looper.get(position);
    final String path = looper.sharePath(position);

    new Thread(new Runnable() {

        @Override
        public void run() {
            GalleryBitmap gbmp = new GalleryBitmap(context, uri, path);
            final Bitmap bmp = gbmp.getBitmap(); // all the work is here
            handler.post(new Runnable() {

                @Override
                public void run() {
                    if (GalleryImageView.this.getTag().equals(uri)) {
                        setImageBitmap(bmp);
                    }
                }
            });
        }
    }).start();
}

}

Когда я медленно прокручиваю галерею , центральное изображение продолжает появляться в центр. Это' Трудно объяснить, но это действительно раздражает. Я также попробовал тот же подход для адаптера счетчика, и он там отлично работает.

Есть идеи?

5
задан i_am_jorf 3 May 2011 в 21:59
поделиться