为了账号安全,请及时绑定邮箱和手机立即绑定

列表视图向上滚动时图像重叠?

列表视图向上滚动时图像重叠?

慕标琳琳 2022-12-07 15:10:16
以上 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" /> 
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

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

        }


查看完整回答
反对 回复 2022-12-07
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

关于下线有什么想法吗?似乎它需要始终获取当前索引而不是 0。final String fileUrl = filepath.get(0);


也尝试 else 部分用于图像加载。


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

            }

        });

    }else{

//TODO:

viewHolder.report_image.setImageBitmap("Placeholder image");


}


查看完整回答
反对 回复 2022-12-07
?
茅侃侃

TA贡献1842条经验 获得超22个赞

尝试使用 Glide 的内置占位符功能,并删除布局对图像的引用。


在您的 xml 中,尝试更改


android:src="@drawable/no_image" 


tools:src="@drawable/no_image"

这将允许仅出于开发/设计目的在布局编辑器中查看图像。您可能需要在父视图中导入工具包才能执行此操作,


xmlns:tools="http://schemas.android.com/tools 

然后使用 Glide 的占位符功能在没有可用替代图像的地方自动插入占位符图像。


Glide.with(context)

.asBitmap()

.load(fileUrl)

.placeholder(R.drawable.no image)

//...the rest of your code here


查看完整回答
反对 回复 2022-12-07
  • 3 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号