如何在GridView中最佳地优化Picasso?

时间:2015-05-28 03:51:31

标签: android picasso

我正在使用Picasso(2.5.2)通过适配器将本地content://图片加载到3列GridView中。

Picasso
    .with(mContext)
    .load(mCameraImages.getUris().get(position))
    .error(android.R.drawable.ic_dialog_alert)
    .fit()
    .centerCrop()
    .into(view);

在我的特定情况下,mCameraImages只是一个URI列表,来自本地mediaStore。

我发现当我加载GridView时,Picasso总是从磁盘(蓝色调试指示器)而不是内存中获取图像。

这是预期的,但我想通过更快地加载缩略图或图像来优化UX。

如果向下滚动GridView并且必须等待〜秒才能完成磁盘提取,“性能”特别差。

我可以尝试哪些方法来优化Picasso加载,以便本地内容可以像QuickPic这样的应用一样快地显示?

Here is my reduced adapter code(非常简单)。

1 个答案:

答案 0 :(得分:5)

尝试使用Glide。它应该比毕加索更快,更节省内存。代码也与Picasso类似,因此您不需要对代码进行太多更改。

示例代码:

Glide.with(mContext)
    .load(mCameraImages.getUris().get(position))
    .error(android.R.drawable.ic_dialog_alert)
    .centerCrop()
    .into(view);

查看此Glide vs Picasso文章,了解两者之间的详细差异。

同时检查此Improving Performance with the ViewHolder Pattern以了解ViewHolder并在适配器中实现该功能以提高性能。