我正在使用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这样的应用一样快地显示?
答案 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并在适配器中实现该功能以提高性能。