not*_*eek 5 android android-widget remoteview android-remoteview android-glide
我正在根据Google“ StackWidget”示例为我的Android应用开发一个简单的小部件:https ://android.googlesource.com/platform/development/+/master/samples/StackWidget/src/com/example/android/stackwidget /StackWidgetService.java
我正在使用滑动图像库,并且尝试在扩展了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);
}
}));
Run Code Online (Sandbox Code Playgroud)
从URL加载图像以从Android小部件填充RemoteView的正确和最佳方法是什么?
只需要同步进行即可。这似乎工作正常:
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();
}
Run Code Online (Sandbox Code Playgroud)
Glide有一个用于执行此操作的结构,称为:AppWidgetTarget:
在科特林:
val awt: AppWidgetTarget = object : AppWidgetTarget(context.applicationContext, R.id.img, remoteViews, *appWidgetIds) {
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
super.onResourceReady(resource, transition)
}
}
var options = RequestOptions().
override(300, 300).placeholder(R.drawable.placeholder_img).error(R.drawable.error_img)
Glide.with(context.applicationContext).asBitmap().load(imageUrl).apply(options).into(awt)
Run Code Online (Sandbox Code Playgroud)
在Java中:
AppWidgetTarget awt = new AppWidgetTarget(context, R.id.img_dog, remoteViews, appWidgetIds) {
@Override
public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
super.onResourceReady(resource, transition);
}
};
RequestOptions options = new RequestOptions().
override(300, 300).placeholder(R.drawable.placeholder_img).error(R.drawable.error_img)
Glide.with(context.getApplicationContext())
.asBitmap()
.load(imageUrl)
.apply(options)
.into(awt);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2738 次 |
| 最近记录: |