Универсальный загрузчик изображений внутри виджета RemoteViewsFactory для Android
Я хотел бы опубликовать решение проблемы. Надеюсь, это поможет другим людям, столкнувшимся с той же проблемой.
Это связано с библиотекой универсального загрузчика изображений Android, доступной здесь
Первоначальный вопрос звучал так:
Я начал сегодня использовать ваш Android Universal Image Loader (AUIL), что очень и очень приятно ! Спасибо, что поделились этим !
Я знаю, что можно использовать AUIL в проекте виджета android внутри класса Provider но я пытаюсь загрузить кратное изображение внутри ListView (само внутри виджета).
1 ответ:
Решение, которое мне удается найти, является
public class YourViewsFactory implements RemoteViewsService.RemoteViewsFactory { Map<Integer, Boolean> flags = Collections.synchronizedMap(new HashMap<Integer, Boolean>()); Bitmap mBitmap; Handler handler = new Handler(Looper.getMainLooper()); @Override public RemoteViews getViewAt(final int position) { final RemoteViews row = new RemoteViews(ctxt.getPackageName(), R.layout.row); flags.put(position, false); handler.post(new Runnable() { @Override public void run() { m_imgLoader.loadImage(YOUR_IMAGE_URL, new SimpleImageLoadingListener() { @Override public void onLoadingStarted(String imageUri, View view) { } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { flags.put(position, true); } @Override public void onLoadingCancelled(String imageUri, View view) { flags.put(position, true); } @Override public void onLoadingComplete(String arg0, View arg1, Bitmap bitmap) { mBitmap = bitmap; flags.put(position, true); } }); } }); while (!flags.get(position)) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } flags.put(position, false); if (mBitmap != null) { row.setImageViewBitmap(R.id.ivPoster, mBitmap); } else { row.setImageViewResource(R.id.ivPoster, R.drawable.cw); } mBitmap = null; } // End of getViewAt override } // End of class
Это не мое решение, а одно из доступных Вове Клышевичу здесь!