1

我正在开发一个简单的小工具,我的基于谷歌“StackWidget”样本Android应用:https://android.googlesource.com/platform/development/+/master/samples/StackWidget/src/com/example/android/stackwidget/StackWidgetService.java窗口小部件 - 从URL加载图像到远程查看

我使用滑行图像库,我想填充一个支持扩展RemoteViewsService的StackWidgetService类的getViewAt方法上的ImageView。我在做这样的事情,但它不工作:

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); 
       } 
      })); 

什么是从URL加载图像的正确的和最佳的方式来填充从Android的Widget一个远程视窗?

+1

不要做异步('onResourceReady()')。当你返回'RemoteViews'时,他们必须完全填入。 – CommonsWare

回答

0

只需要同步做到这一点。这似乎工作正常:

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(); 
    }