java - listview向上滚动时图像重叠?
问题描述
以上stackview答案对我的问题不满意。我的垂直列表视图包含 URL 图像。如果未从 url 收到图像,则显示占位符图像。但是我向上滚动列表视图,图像在占位符图像中重叠。请帮助我解决这个问题。
if (view == null) {
LayoutInflater vi = LayoutInflater.from(context);
view = vi.inflate(R.layout.my_own, parent, false);
viewHolder = new ViewHolder(view);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}
if (filepath != null && !filepath.isEmpty()) {
final String fileUrl = filepath.get(0);
Log.d("image", "image" + data);
if (fileUrl.contains(".jpg") || fileUrl.contains(".png")) {
Glide.with(context).asBitmap().load(fileUrl).into(new SimpleTarget < Bitmap > () {
@Override public void onResourceReady(Bitmap resource, Transition < ? super Bitmap > transition) {
viewHolder.report_image.setImageBitmap(resource);
viewHolder.report_image.setScaleType(ImageView.ScaleType.CENTER_CROP);
FM_ReportFileSystem.saveImageToSdCard(resource, fileUrl);
}
});
}
}
XML:
<de.hdodenhof.circleimageview.CircleImageView android:id="@+id/report_image"
android:layout_width="85dp"
android:layout_height="85dp"
android:layout_marginLeft="@dimen/_8sdp"
android:layout_marginRight="@dimen/_10sdp"
android:layout_marginTop="@dimen/_7sdp"
android:src="@drawable/no_image"
app:civ_border_color="@color/LightGray" app:civ_border_width="1dp" />
解决方案
final ViewHolder viewHolder;
if (view == null) {
LayoutInflater vi = LayoutInflater.from(context);
view = vi.inflate(R.layout.my_own, parent, false);
viewHolder = new ViewHolder(view);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}
viewHolder.report_image.setImageDrawable(null);
if (filepath != null && !filepath.isEmpty()) {
final String fileUrl = filepath.get(0);
//Log.d("image", "image" +data);
if (fileUrl.contains(".jpg") || fileUrl.contains(".png")) {
if (fileUrl != null) { // simulate an optional url from the data item
Glide.with(context)
.asBitmap()
.load(fileUrl)
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
if (resource == null) {
// holder.setIsRecyclable(true);
// return;
}
viewHolder.report_image.setImageBitmap(resource);
// viewHolder.report_image.setScaleType(ImageView.ScaleType.CENTER_CROP);
FM_ReportFileSystem.saveImageToSdCard(resource, fileUrl);
}
});
}
}
}else
{
Bitmap icon = BitmapFactory.decodeResource(context.getResources(),
R.drawable.no_image);
viewHolder.report_image.setImageBitmap(icon);
}
推荐阅读
- databricks - Databricks 错误:内部错误,抱歉。将您的笔记本附加到不同的集群或重新启动当前集群
- python - 无需访问任何 Python 代码即可使用 re.findall 获得第一个匹配项
- javascript - response.json() 永远不会完成
- celery - 如何在芹菜中获得经纪人池限制?
- generics - 如何在 Elm 中指定泛型类型注释?
- java - 不理解 Biginteger 素数构造函数参数
- css - 同时使用最小高度和最大高度
- vba - 将外键从一个表复制到另一个表以建立一对多关系
- php - ajax 没有调用服务器 php 程序
- javascript - js:对二维数组进行排序