我一直在使用Picasso库将图片加载到我的应用程序中的GridView中,它的工作效果完美。但是用户告诉我,图片加载非常缓慢,这是因为网络速度较慢,而Picasso会加载完整的大图像,然后将其调整大小以适应我的ImageView。因此,我尝试使用Glide,它的加载速度几乎比Picasso快两倍,但对于某些图片,它并没有像Picasso那样保持结构。例如,Picasso加载的图像看起来像这样:
而Glide加载它们有不同的状态,这是它最初加载的样子:
然后滚动后它看起来像:
最终在大量滚动之后它看起来像:
我非常有信心认为这是因为我的图片大小都不同,而且似乎让我的占位符图像的大小不同会产生影响,但我想知道如何让Glide保持它的初始状态,或者如何让Picasso更快地加载?我听说将色彩格式从888降低到565会产生显著影响,能否有人给我建议?感谢所有建议。
编辑:
这是我的ImageView
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:id="@+id/imageView"/>
这是我调用 Picasso 的方式:
Picasso.with(getActivity())
.load(mThumbIds[position])
.placeholder(R.drawable.placeholder)
.fit()
.into(imageView);
return imageView;
现在我是这样调用Glide的
Glide.with(getActivity())
.load(mThumbIds[position])
.asBitmap()
.placeholder(R.drawable.placeholder)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.fitCenter()
.error(R.drawable.ic_photos)
.into(imageView);
return imageView;
如果有必要,这是我的GridView:
<GridView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="5dp"
android:id="@+id/gridview"
android:numColumns="2"
android:gravity="center"
android:drawSelectorOnTop="true"
android:listSelector="@drawable/ripple"
android:stretchMode="columnWidth"
>
ImageView
部分)? - ianhanniballake