【发布时间】:2021-05-06 13:25:15
【问题描述】:
我正在开发一个 Android 主屏幕小部件,它从一组 url(从 firebase 数据库获得)中选择一个随机图像 url,并显示该图像。小部件每 30 分钟更新一次,因此应该每 30 分钟左右显示一个新图像。
我正在使用 Picasso 显示来自 url 的图像。
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
if (currentWidget.url.length() > 0) {
final RoundCornersTransformation transformation = new RoundCornersTransformation(50, 0);
Picasso.get().load(currentWidget.url).memoryPolicy(MemoryPolicy.NO_CACHE).transform(transformation).into(new Target() {
@Override
public void onBitmapLoaded (final Bitmap bitmap, Picasso.LoadedFrom from){
Log.d("PICASSO", "Bitmap Loaded");
views.setImageViewBitmap(R.id.appwidget_image, bitmap);
}
@Override
public void onBitmapFailed(Exception e, Drawable errorDrawable) {
Log.d("PICASSO", "Bitmap Failed");
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
Log.d("PICASSO", "Bitmap Prepared");
}
});
}
我已经测试了url,并且它会定期更新,并且代码中没有逻辑错误,因为有时会显示图像。但是,大多数情况下,即使 url 更新并且我在控制台中获得“Bitmap Loaded”,小部件中的图像也不会更新。
【问题讨论】:
标签: android bitmap imageview android-widget picasso