Я хотел бы создать адаптер отложенной загрузки для использования с виджетом 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();
}
}
Когда я медленно прокручиваю галерею
, центральное изображение продолжает появляться в центр. Это' Трудно объяснить, но это действительно раздражает. Я также попробовал тот же подход для адаптера счетчика, и он там отлично работает.
Есть идеи?