关于加载图片错位的问题

小神的烦恼 2015-08-03 10:41:59
String img = list.get(position).getDy_middle_pic();
// holder.img_dynamic.setTag(img);

if (img != null && !"".equals(img)) {
// if (holder.img_dynamic.getTag().equals(img))
holder.img_dynamic.setVisibility(View.VISIBLE);
bitmapUtils.display(holder.img_dynamic, img);
} else {
holder.img_dynamic.setVisibility(View.GONE);
}
return convertView;



求教ImageView明明隐藏了,为什么还会作为文字背景的图片?
...全文
159 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
小神的烦恼 2015-08-03
  • 打赏
  • 举报
回复
引用 1 楼 u014765620 的回复:
你是把imageview作为textview 的背景了?看着也不像啊,把XML贴出来才是能看出来问题。。。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@color/white"> <TextView android:id="@+id/textView_item_storeDynamic_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:padding="5dp" android:text="TextView" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:orientation="horizontal" > <ImageView android:id="@+id/imageView_item_storeDyanmic" android:layout_width="100dp" android:layout_height="100dp" android:scaleType="centerCrop" android:src="@drawable/img_product"/> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="5dp" android:orientation="vertical" > <TextView android:id="@+id/textView_item_storeDynamic_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:padding="5dp" android:maxLines="2" android:ellipsize="end" android:text="TextView" /> <TextView android:id="@+id/textView_item_storeDynamic_abstruct" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:textColor="@color/blue" android:singleLine="true" android:padding="5dp" android:ellipsize="end" android:text="TextView" /> </LinearLayout> </LinearLayout> </LinearLayout> 这个是listView的列表布局,最主要的还是图片的显示与否?
十三邵 2015-08-03
  • 打赏
  • 举报
回复
你是把imageview作为textview 的背景了?看着也不像啊,把XML贴出来才是能看出来问题。。。
小神的烦恼 2015-08-03
  • 打赏
  • 举报
回复
引用 4 楼 luqing414 的回复:
你确定进了else逻辑却还显示图片?还是压根就没进else,

String img = list.get(position).getDy_middle_pic();

你这个img有可能为空或“”吗?怀疑你这里逻辑有问题,错位有可能是你逻辑问题,除非是快速滑动导致的错位设置Tag比较URL才有用




我解析的图片信息,怎样设置tag啊?我注释掉的代码中有tag,但是没什么用,求解。。
小神的烦恼 2015-08-03
  • 打赏
  • 举报
回复
引用 3 楼 u011070145 的回复:
在ListView 中加载图片错乱 你给这个ImageView 设置一个 Tag 加载图片的时候 判断是否是这个Url 什么的 这样就不会错乱了
是我注释掉的代码吗?但是没用啊,还是我写的地方不对,求指教。。。
luqing414 2015-08-03
  • 打赏
  • 举报
回复
你确定进了else逻辑却还显示图片?还是压根就没进else, String img = list.get(position).getDy_middle_pic(); 你这个img有可能为空或“”吗?怀疑你这里逻辑有问题,错位有可能是你逻辑问题,除非是快速滑动导致的错位设置Tag比较URL才有用
浅笑_JIE 2015-08-03
  • 打赏
  • 举报
回复
在ListView 中加载图片错乱 你给这个ImageView 设置一个 Tag 加载图片的时候 判断是否是这个Url 什么的 这样就不会错乱了
ListView异步加载图片图片错位问题解决方案 * 问题分析:我们在使用AsyncTask异步下载图片的时候,经常会用到convertView的重用,一般情况下,滑动后第一个可见的元素(我们给它命个名,称为A1)和 * listview的第一个元素(A)是公用一个convertView的(一般情况),此时问题就来了,如果异步下载图片执行的比较慢,第一个元素对应的url * 下载的图片会放到第一个元素上面还是滑动后第一个可见的元素上面呢? * 解决方案:给每个listview的ImageView设置tag,使用findViewWithTag()的方式来得到ImageView,此时图片就不会产生错位了。而且 * 值得注意的是,由于A和A1使用同一个convertView,因此如果A中的ImageView已经有值得话,当A2展示的并且它所对应的图片还未加载完成的时候, * A2会显示A上的图片,这明显是不对的,因此我们这里给它设置一个默认的icon,即mHolder.mImageView.setImageResource(R.drawable.ic_launcher); * 思路简介:一般listview中涉及到图片加载的,为了提高用户体验,一般会使用一个软引用和存文件的方式来实现。不过还见过这样来实现的:即用一个HashMap来存放很小一部分的数据, * 当HashMap中的大小达到一定的值时,清空HashMap,并且将数据放入软应用中。 * 注意操作sdcard权限已经网络访问权限的加入

80,355

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧