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