我正在使用滑动加载内容,我使用它来加载页面中的1个图像,如果我关闭并重新打开我的应用程序,它的工作正常.问题是当我在listview上使用它时,滑动总是重新下载它.
细节错误步骤:
>从服务器加载内容后,所有图像都显示正常
>然后我向下滚动,新内容也显得正常
>当我向后滚动时,所有图像都会消失,但是在1秒之后我的图像再次出现,因为滑行将其加载回来,就像滑翔之前从未加载过一样.
>如果我有纵向方向,第一次加载,它将填充布局宽度,但第二次(向后滚动列表视图)图像显示较小而不是全宽.
这是我的剪辑代码
View view = convertView;
if (null == view) {
view = View.inflate(parent.getContext(), R.layout.item, null);
}
ImageView ivAvatar = (ImageView) view.findViewById(R.id.iv_avatar);
ImageView ivPicture = (ImageView) view.findViewById(R.id.iv_picture);
TextView tvName = ....
...
tvName.setText(.....);
Glide.with(parent.getContext()).load(Api.getUrlImage(contents.get(position).avatar, 50, 0)).into(ivAvatar);
Glide.with(parent.getContext()).load(Api.getUrlImage(contents.get(position).picture, 400, 0)).into(ivPicture);
在第3点,它像一个闪烁,但图像视图失去了它的高度.图像下方的文字(如那里没有图像视图)然后在滑行完成加载图像后返回
在第4点,我的屏幕分辨率为480px,我加载了400px图像(按服务器调整大小),如第二个滑行代码所示.
my question, how to remove this blinking image?
*我在低规格设备和高规格设备(三星标签)上运行,并在两个设备中闪烁
最佳答案 尝试使用dontAnimate(),看看它是否解决了这个问题?
如果问题仍然存在,那么这是因为Glide释放了先前图像的资源以便加载后续图像.
如果要在滚动列表中加载大量图像并且需要支持低规格设备,那么壁画是更好的选择. http://frescolib.org/index.html它使用本机内存,并且具有更好的位图资源管理,尤其适用于5.0之前的Android设备.