@Override
public View getView(int position, View convertView, ViewGroup parent) {
viewHolder holder;
if (convertView == null) {
holder = new viewHolder();
convertView = View.inflate(context, R.layout.item_list, null);
//text
holder.i_text = (TextView) convertView.findViewById(R.id.i_text);
//图片
holder.i_imageview = (ImageView) convertView.findViewById(R.id.i_imageview);
convertView.setTag(holder);
} else {
// viewholder优化
holder = (viewHolder) convertView.getTag();
}
holder.i_text.setText(list.get(position).getTitle());
// json封装的图片进项线程调用
String picPath= list.get(position).getPicUrl().toString();
Log.d("SSS","+++适配器中:+++"+picPath);
//发送请求
new MyPicTask(holder.i_imageview).execute(picPath.toString());
return convertView;
}
class viewHolder {
TextView i_text;
ImageView i_imageview;
}
// AsyncTask 主线程子线程 注意 中括号里面因为图片所以属性是Bitmap
class MyPicTask extends AsyncTask<String, Void, Bitmap> {
ImageView i_imageview;
public MyPicTask(ImageView i_imageview) {
this.i_imageview = i_imageview;
}
@Override
public Bitmap doInBackground(String... params) {
try {
URL url = new URL(params[0]);
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
if(connection.getResponseCode()==200){
InputStream stream=connection.getInputStream();
Bitmap bitmap= BitmapFactory.decodeStream(stream);
return bitmap;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
public void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
i_imageview.setImageBitmap(bitmap);
}
}