Android:使用smartImageView滚动下载时图像错误(Android: wrong images while scrolling download with smartImageView

编程入门 行业动态 更新时间:2024-10-26 00:18:13
Android:使用smartImageView滚动下载时图像错误(Android: wrong images while scrolling download with smartImageView)

我正在使用智能图像视图从互联网下载图像。 我将图像放在列表视图中并且工作正常,问题在我滚动时开始,应用程序查看以前的图像,一段时间后它显示正确的图像,我希望它不会显示任何东西,直到正确的图像准备好了,我该怎么做?

import java.util.ArrayList; import android.app.Activity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import com.loopj.android.image.SmartImageView; public class ListAdapter extends BaseAdapter{ Activity context; ArrayList<Row> List ; public ListAdapter(ArrayList<Row> List, Activity context) { this.List = List; this.context = context; } @Override public int getCount() { return List.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; LayoutInflater inflater = context.getLayoutInflater(); if (convertView == null){ convertView = inflater.inflate(R.layout.custom_row, parent, false); holder = new ViewHolder(); holder.image = (SmartImageView) convertView.findViewById(R.id.image); holder.name = (TextView) convertView.findViewById(R.id.name); convertView.setTag(holder); } else{ holder = (ViewHolder)convertView.getTag(); } String Name = List.get(position).getName(); String image = List.get(position).getURL(); holder.name.setText(Name); holder.image.setImageUrl(image); return convertView; } static class ViewHolder { TextView name; SmartImageView image; } }

i'm downloading images from internet using smart image view. i placed the images inside a listview and it works fine, the problem start when i'm scrolling, the app viewing the previous images and after a while it shows the correct image, i want that it won't display anything until the correct image is ready, how can i do that?

import java.util.ArrayList; import android.app.Activity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import com.loopj.android.image.SmartImageView; public class ListAdapter extends BaseAdapter{ Activity context; ArrayList<Row> List ; public ListAdapter(ArrayList<Row> List, Activity context) { this.List = List; this.context = context; } @Override public int getCount() { return List.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; LayoutInflater inflater = context.getLayoutInflater(); if (convertView == null){ convertView = inflater.inflate(R.layout.custom_row, parent, false); holder = new ViewHolder(); holder.image = (SmartImageView) convertView.findViewById(R.id.image); holder.name = (TextView) convertView.findViewById(R.id.name); convertView.setTag(holder); } else{ holder = (ViewHolder)convertView.getTag(); } String Name = List.get(position).getName(); String image = List.get(position).getURL(); holder.name.setText(Name); holder.image.setImageUrl(image); return convertView; } static class ViewHolder { TextView name; SmartImageView image; } }

最满意答案

这是因为Android中的列表视图可以重复使用以帮助提高性能。 SmartImageView的setImageUrl方法需要一些时间才能完成,将其保留为上一个图像,直到完成

您可以通过在holder.image.setImageUrl(image);添加以下行来解决此问题holder.image.setImageUrl(image);

holder.image.setImageBitmap(null);

This is because the listviews in Android are reused to help performance. The SmartImageView's setImageUrl method takes some time to complete, leaving it with the previous image until it finishes

You can fix this by adding the following line above holder.image.setImageUrl(image);

holder.image.setImageBitmap(null);

更多推荐

本文发布于:2023-08-06 01:17:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1442473.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:图像   错误   smartImageView   Android   download

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!