【发布时间】:2014-03-03 00:39:56
【问题描述】:
我在 ListView 中使用 ViewHolder 设置,所以我确信这不是回收问题。
ListView 仅在第一次加载图像时滞后,如果我向上滚动,一切都很顺利。
我的简化 getView 方法:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
...
mPicasso.load(cData.get("url")).into(holder.imagePreviewView);
...
}
我的 ImageView 的 XML:
<ImageView
android:id="@+id/imagePreview"
android:layout_width="fill_parent"
android:layout_height="@dimen/image_preview_height"
android:scaleType="centerCrop"
android:background="?attr/postPreviewBground" />
谢谢!
【问题讨论】:
-
您是否将 listview 的 layout_height 设置为 wrap_content。这可能会导致初始延迟
-
我将它们设置为 match_parent。
-
延迟是因为你在主线程而不是非 ui 线程上加载图像,从线程加载图像并且最初只有图像的占位符
-
把它放在另一个线程上会有所帮助,但它仍然口吃太多了。
-
我也有同样的问题!!!感谢您打开这个问题! ....在我的情况下,图像已经在磁盘中。这里我如何称呼毕加索: /* 代码 */ Picasso.with(mContext).load(new File(cursor.getString(columnIndex))) .fit().centerInside() .placeholder(R.drawable.image_while_loading) .error (R.drawable.image_loading_erro).into(imagem);