private List<Result.DataBean> data;
private Context context;
private DisplayImageOptions options;
public MyLvAdapter(List<Result.DataBean> data, Context context) {
this.data = data;
this.context = context;
//第二步
options=new DisplayImageOptions.Builder()
.cacheInMemory(true)//使用内存缓存
.cacheOnDisk(true)//使用磁盘缓存
.showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片
.showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时
.showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片
.bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式
.imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
.build();
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder;
if(view==null){
view=View.inflate(context, R.layout.item,null);
holder=new ViewHolder();
holder.img=view.findViewById(R.id.img);
holder.tvTitle=view.findViewById(R.id.tv_title);
holder.tvPrice=view.findViewById(R.id.tv_price);
view.setTag(holder);
}else{
holder=(ViewHolder) view.getTag();
}
holder.tvTitle.setText(data.get(i).getTitle());
holder.tvPrice.setText("¥"+data.get(i).getPrice());
//分隔字符串
String picPath=data.get(i).getImages();
Log.d("zzz",picPath);
//竖线在正则表达式中是特殊字符,需要转义,也就是("\|"),
//右斜杠也是特殊字符,也需要转义,则应该是("\\|")
String[] pics = picPath.split("\\|");
Log.d("zzz",pics[0]);
// MyPicTask task=new MyPicTask(holder.img);
// task.execute(pics[0]);
//第三步:加载图片
ImageLoader.getInstance().displayImage(pics[0],holder.img,options);
return view;
}
class ViewHolder{
ImageView img;
TextView tvTitle;
TextView tvPrice;
}
class MyPicTask extends AsyncTask<String,Void,Bitmap>{
private ImageView img;
public MyPicTask(ImageView img) {
this.img = img;
}
@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 (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
img.setImageBitmap(bitmap);
}
}
}
private Context context;
private DisplayImageOptions options;
public MyLvAdapter(List<Result.DataBean> data, Context context) {
this.data = data;
this.context = context;
//第二步
options=new DisplayImageOptions.Builder()
.cacheInMemory(true)//使用内存缓存
.cacheOnDisk(true)//使用磁盘缓存
.showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片
.showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时
.showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片
.bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式
.imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
.build();
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder;
if(view==null){
view=View.inflate(context, R.layout.item,null);
holder=new ViewHolder();
holder.img=view.findViewById(R.id.img);
holder.tvTitle=view.findViewById(R.id.tv_title);
holder.tvPrice=view.findViewById(R.id.tv_price);
view.setTag(holder);
}else{
holder=(ViewHolder) view.getTag();
}
holder.tvTitle.setText(data.get(i).getTitle());
holder.tvPrice.setText("¥"+data.get(i).getPrice());
//分隔字符串
String picPath=data.get(i).getImages();
Log.d("zzz",picPath);
//竖线在正则表达式中是特殊字符,需要转义,也就是("\|"),
//右斜杠也是特殊字符,也需要转义,则应该是("\\|")
String[] pics = picPath.split("\\|");
Log.d("zzz",pics[0]);
// MyPicTask task=new MyPicTask(holder.img);
// task.execute(pics[0]);
//第三步:加载图片
ImageLoader.getInstance().displayImage(pics[0],holder.img,options);
return view;
}
class ViewHolder{
ImageView img;
TextView tvTitle;
TextView tvPrice;
}
class MyPicTask extends AsyncTask<String,Void,Bitmap>{
private ImageView img;
public MyPicTask(ImageView img) {
this.img = img;
}
@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 (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
img.setImageBitmap(bitmap);
}
}
}