我正在使用滑动来加载内容,我使用它来加载页面中的1个图像,如果我关闭并重新打开我的应用程序,它的工作正常。问题是当我在listview上使用它时,滑动总是重新下载它 详细错误步骤:
这是我的剪辑代码
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图像(按服务器调整大小),如第二个滑行代码所示。
我的问题,如何删除这个闪烁的图像?
*我在低规格设备和高规格设备(三星标签)上运行此设备并在两个设备中都发生闪烁
答案 0 :(得分:2)
尝试使用if之前在适配器中使用onCreateView
方法滑行
if (yourImageView.getDrawable() == null)
// load your image
所以如果图像已经加载,那么方法不会返回null
答案 1 :(得分:0)
尝试使用dontAnimate()并查看它是否解决了问题?
如果问题仍然存在,那么这是因为Glide释放了先前图像的资源以加载后续图像。
如果要在滚动列表中加载大量图像,并且需要支持低规格设备,那么壁画是更好的选择。 http://frescolib.org/index.html它使用本机内存,并且具有更好的位图资源管理,尤其适用于5.0之前的Android设备。