首页 > 解决方案 > 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" /> 

标签: javaandroidimagelistview

解决方案


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);
        }

推荐阅读