Saya sedang mengembangkan Widget sederhana untuk aplikasi Android saya berdasarkan contoh Google StackWidget berikut ini.
Saya menggunakan pustaka gambar Glide dan mencoba mengisi metode ImageView pada getViewAt
dari kelas StackWidgetService
yang memperluas RemoteViewsService
. Kode saya mirip dengan:
Handler uiHandler = new Handler(Looper.getMainLooper());
uiHandler.post(() ->
Glide.with(context)
.asBitmap()
.load(widgetItems.get(position).image_url)
.into(new SimpleTarget<Bitmap>(512, 512) {
@Override
public void onResourceReady(Bitmap bitmap, Transition transition) {
rv.setImageViewBitmap(R.id.widget_item_image, bitmap);
}
})
);
Apa cara terbaik memuat gambar dari URL untuk mengisi RemoteView dari Widget Android?
Solusi
Hanya perlu melakukannya secara sinkron. Ini tampaknya berfungsi dengan baik:
try {
Bitmap bitmap = Glide.with(context)
.asBitmap()
.load(widgetItems.get(position).image_url)
.submit(512, 512)
.get();
rv.setImageViewBitmap(R.id.widget_item_image, bitmap);
} catch (Exception e) {
e.printStackTrace();
}