我正在实现基于本教程的列表视图的小部件:http://laaptu.wordpress.com/2013/07/24/populate-appwidget-listview-with-remote-datadata-from-web/(源代码:https://github.com/laaptu/appwidget-listview/tree/appwidget-listview2/)。毕加索:加载图像到窗口小部件列表视图
ListView项目包含文本&图像,用于图像加载我使用毕加索。
getViewAt实现:
public RemoteViews getViewAt(int position) {
final RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.listview_item);
ListItem listItem = listItemList.get(position);
remoteView.setTextViewText(R.id.headline, listItem.headline);
final String imageUrl = listItem.image;
handler.post(new Runnable() {
@Override
public void run() {
if (!Utils.isEmpty(imageUrl)) {
picasso.load(imageUrl)
.placeholder(R.drawable.empty_photo)
.into(remoteView, R.id.picture, new int[] { appWidgetId });
}
}
});
return remoteView;
}
当图像加载,它打破布局。
什么可能是一个可能的问题?或者我做错了什么?
没有图像加载:
它的外观图像加载后:
UPDATE:
同样的情况,如果我只是添加很少有嵌套的远程视图(所有的虚拟视图都膨胀)一个布局)
UPDATE2:
报告的问题:https://github.com/square/picasso/issues/587
奇怪,问题仍然是开放的:) https://github.com/square/picasso/issues/587 –
@ ab.helly是您正确的。遗憾的是,这在列表视图中不起作用,因为毕加索需要回调主线程。在listview远程服务中,你已经在后台线程中。我也解决了这个问题,将缓存的位图存储在地图中并以此方式提供服务。我最初让他们使用毕加索并调整大小以确保最佳性能。 – ngatirauks