1

私はGoogleの「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); 
       } 
      })); 

AndroidのウィジェットからRemoteViewを移入するURLから画像をロードするのが正しいと最良の方法は何ですか?

+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(); 
    } 
関連する問題