【发布时间】:2016-03-10 02:03:37
【问题描述】:
在我的应用程序中,我从url 加载图像并使用listview 在imageview 中显示它
但是当我滚动 listview 时,image 会发生变化。
这是我的代码:
列表适配器:
class DataAdapter extends ArrayAdapter<ArtistClass>{
public DataAdapter() {
super(Activity.this,
android.R.layout.simple_list_item_1,datalist);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View item=convertView;
if(item==null){
LayoutInflater inflater=getLayoutInflater();
item=inflater.inflate(R.layout.listview, parent,false);
}
ArtistClass p=datalist.get(position);
TextView artistnametxt=(TextView)item.findViewById(R.id.artistnametxt);
ImageView artistimage=(ImageView)item.findViewById(R.id.artistimage);
String ospartistname=p.getartistname();
artistnametxt.setText(ospartistname);
String artistimageurl=p.getartistimage();
new DownloadImageTask(artistimage).execute(artistimageurl);
return (item);
}
}
及其从url加载图片的功能:
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
}
【问题讨论】: