您的位置:首页 > 理论基础 > 计算机网络

list适配器设置网络获取的图片

2017-12-28 14:49 211 查看
 
package com.example.com.rk_day_03;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

/**
* Created by 他。 on 2017/12/28.
*/

public class MyAdapter extends BaseAdapter{
List<Bean.NewslistBean> newslist;
Context context;
public MyAdapter(List<Bean.NewslistBean> newslist, Context context) {
this.context=context;
this.newslist=newslist;
}

@Override
public int getCount() {
return newslist.size();
}

@Override
public Object getItem(int i) {
return newslist.get(i);
}

@Override
public long getItemId(int i) {
return i;
}

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder;
if(view==null){
view=View.inflate(context,R.layout.list_view,null);
holder=new ViewHolder();
holder.title=view.findViewById(R.id.bt);
holder.tp=view.findViewById(R.id.tp);
holder.wz=view.findViewById(R.id.start);
view.setTag(holder);
}else{
holder= (ViewHolder) view.getTag();
}
//赋值
holder.wz.setText(newslist.get(i).getDescription());
holder.title.setText(newslist.get(i).getTitle());
MypicTask mypictask = new MypicTask(holder.tp);
mypictask.execute(newslist.get(i).getPicUrl());
return view;
}
private class ViewHolder{
TextView title;
TextView wz;
ImageView tp;
}
class MypicTask extends AsyncTask<String, Void, Bitmap> {
private ImageView imageView;

public MypicTask(ImageView imageView) {
this.imageView = imageView;
}

@Override
protected Bitmap doInBackground(String... strings) {
try {
URL url = new URL(strings[0]);
HttpURLConnection urlconnection = (HttpURLConnection) url.openConnection();
urlconnection.setRequestMethod("GET");
urlconnection.setReadTimeout(5000);
urlconnection.setConnectTimeout(5000);
//判断结果码
if(urlconnection.getResponseCode()==200){
//得到资源
InputStream inputstream = urlconnection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputstream);
return bitmap;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
if(bitmap==null){
imageView.setImageResource(R.mipmap.ic_launcher);
}else{
imageView.setImageBitmap(bitmap);
}
}

@Override
protected void onPreExecute() {
super.onPreExecute();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: