2016-11-09 3 views
2

첫 번째 앱 위젯을 만들고 있습니다. 한 가지는 제외하고는 아무 것도 없습니다. Glide를 사용하여 RemoteViewsFactroy의 getViewAt() 메소드에서 이미지를 ImageView로로드하는 방법을 알 수 없습니다. MainThread에서 (AppWidgetTarget)을 실행해야하기 때문에 항상 오류가 발생하지만 RemoteViewsFactory에서 새로운 Handler (Looper.getMainLooper())를 호출 할 수 없습니다.이미지를 Glide for AppWidget에로드하십시오.

+0

당신은 이것을 유니버설 이미지 로더를 사용하여 얻을 수 있습니다. 글라이드 만 사용하여 이미지를로드 하시겠습니까? – Sangeetha

답변

0

글라이드는 AppWidgetTarget 클래스를 제공함으로써 이것을 지원합니다.

onUpdate()에 위젯을 업데이트하는 동안, 당신은 그것에게 RemoteViews 객체, 이미지 뷰의 ID 및 appwidgetId을 통과, 새로운 AppWidgetTarget을 만든 다음이처럼의 이미지 뷰에 대한 거의 같은 방법으로 활강을 호출하여 앱.

appWidgetTarget = new AppWidgetTarget(context, rv, R.id.custom_view_image, appWidgetIds); 

    Glide 
      .with(context.getApplicationContext()) // safer! 
      .load(GlideExampleActivity.eatFoodyImages[3]) 
      .asBitmap() 
      .into(appWidgetTarget); 

위 예제 코드는 wonderful set of glide tutorials에서 가져온 것입니다. 이 튜토리얼은 활공 사용의 많은 실제적인 측면을 다룹니다.

마찬가지로, NotificationTarget 대상 클래스도 글라이드에서 제공됩니다. 동일한 문제를 해결하지만 appWidgets 대신 알림을 처리합니다.

관련 문제