80,350
社区成员
发帖
与我相关
我的任务
分享
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if(convertView==null){
holder=new NewsHolder();
convertView=inflater.inflate(R.layout.newitem, null);
holder.img=(ImageView)convertView.findViewById(R.id.img);
holder.title=(TextView)convertView.findViewById(R.id.title);
holder.content=(TextView)convertView.findViewById(R.id.content);
convertView.setTag(holder);
}else{
holder=(NewsHolder)convertView.getTag();
}
holder.img.setId(position);
holder.img.setTag(this.imgPath[position]);
info=newsList.get(position);
if(info !=null){
holder.title.setText(info.getTitle());
holder.content.setText(info.getContent());
}
//这里是异步调用图片
new CanvasImageTask().execute(holder.img);
holder.img.setDrawingCacheEnabled(true);
return convertView;
}
public class CanvasImageTask extends AsyncTask<ImageView, Void, Bitmap> {
private ImageView gView;
protected Bitmap doInBackground(ImageView... views) {
Bitmap bmp = null;
ImageView view = views[0];
// 根据iconUrl获取图片并渲染,iconUrl的url放在了view的tag中。
if (view.getTag() != null) {
try {
URL url = new URL(view.getTag().toString());
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream stream = conn.getInputStream();
bmp = BitmapFactory.decodeStream(stream);
stream.close();
} catch (Exception e) {
Log.v("img", e.getMessage());
return null;
}
}
this.gView = view;
return bmp;
}
protected void onPostExecute(Bitmap bm) {
if (bm != null) {
//此处更新图片
this.gView.setImageBitmap(bm);
this.gView = null;
}
}