猿问

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

以上 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" /> 


慕标琳琳
浏览 159回答 3
3回答

郎朗坤

final ViewHolder viewHolder;&nbsp;if (view == null) {&nbsp; &nbsp; LayoutInflater vi = LayoutInflater.from(context);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; view = vi.inflate(R.layout.my_own, parent, false);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; viewHolder = new ViewHolder(view);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; view.setTag(viewHolder);&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp;viewHolder = (ViewHolder) view.getTag();&nbsp; &nbsp; }&nbsp; viewHolder.report_image.setImageDrawable(null);if (filepath != null && !filepath.isEmpty()) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; final String fileUrl = filepath.get(0);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Log.d("image", "image" +data);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (fileUrl.contains(".jpg") || fileUrl.contains(".png")) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (fileUrl != null) { // simulate an optional url from the data item&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Glide.with(context)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .asBitmap()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .load(fileUrl)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .into(new SimpleTarget<Bitmap>() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @Override&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (resource == null) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // holder.setIsRecyclable(true);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//&nbsp; return;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; viewHolder.report_image.setImageBitmap(resource);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //&nbsp; viewHolder.report_image.setScaleType(ImageView.ScaleType.CENTER_CROP);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FM_ReportFileSystem.saveImageToSdCard(resource, fileUrl);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}else&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Bitmap icon = BitmapFactory.decodeResource(context.getResources(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; R.drawable.no_image);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; viewHolder.report_image.setImageBitmap(icon);&nbsp; &nbsp; &nbsp; &nbsp; }

哈士奇WWW

关于下线有什么想法吗?似乎它需要始终获取当前索引而不是 0。final String fileUrl = filepath.get(0);也尝试 else 部分用于图像加载。if (fileUrl.contains(".jpg") || fileUrl.contains(".png")) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Glide.with(context).asBitmap().load(fileUrl).into(new SimpleTarget < Bitmap > () {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @Override public void onResourceReady(Bitmap resource, Transition < ? super Bitmap > transition) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; viewHolder.report_image.setImageBitmap(resource);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; viewHolder.report_image.setScaleType(ImageView.ScaleType.CENTER_CROP);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FM_ReportFileSystem.saveImageToSdCard(resource, fileUrl);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; }else{//TODO:viewHolder.report_image.setImageBitmap("Placeholder image");}

茅侃侃

尝试使用 Glide 的内置占位符功能,并删除布局对图像的引用。在您的 xml 中,尝试更改android:src="@drawable/no_image"&nbsp;至tools:src="@drawable/no_image"这将允许仅出于开发/设计目的在布局编辑器中查看图像。您可能需要在父视图中导入工具包才能执行此操作,xmlns:tools="http://schemas.android.com/tools&nbsp;然后使用 Glide 的占位符功能在没有可用替代图像的地方自动插入占位符图像。Glide.with(context).asBitmap().load(fileUrl).placeholder(R.drawable.no image)//...the rest of your code here
随时随地看视频慕课网APP

相关分类

Java
我要回答