//定义三种类型
private final int ONE_IMAGE=0;
private final int TWO_IMAGE=1;
private final int THREE_IMAGE=2;
public MyAdapter(Context context, List<ResultData.ResultBean.DataBean> data) {
this.context = context;
this.data = data;
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)//设置图片色彩模式 1px=2字节
.imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
.displayer(new RoundedBitmapDisplayer(100))//设置圆角 30代表半径 自定义
.build();
}
@Override
public int getViewTypeCount() {
return 3;
}
@Override
public int getItemViewType(int position) {
//根据展示的数据类型,来作判断
String pics = data.get(position).getThumbnail_pic_s();
String pic02 = data.get(position).getThumbnail_pic_s02();
String pic03 = data.get(position).getThumbnail_pic_s03();
if(pics!=null && pic02==null && pic03==null){
return ONE_IMAGE;
}else if(pics!=null && pic02!=null && pic03==null){
return TWO_IMAGE;
}else{
return THREE_IMAGE;
}
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int i) {
return data.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
//调用方法,得到第个条目对应的类型
int type = getItemViewType(i);
if(type==ONE_IMAGE){
Holder1 holder1;
if(view==null){
holder1=new Holder1();
view=View.inflate(context, R.layout.image_one,null);
holder1.imageView=view.findViewById(R.id.img);
holder1.textView=view.findViewById(R.id.tv);
view.setTag(holder1);
}else {
holder1= (Holder1) view.getTag();
}
holder1.textView.setText(data.get(i).getTitle());
ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s(),holder1.imageView,options);
return view;
}else if(type==TWO_IMAGE){
Holder2 holder2;
if(view==null){
holder2=new Holder2();
view=View.inflate(context, R.layout.image_two,null);
holder2.imageView=view.findViewById(R.id.img1);
holder2.imageView1=view.findViewById(R.id.img2);
holder2.textView=view.findViewById(R.id.tv);
view.setTag(holder2);
}else {
holder2= (Holder2) view.getTag();
}
holder2.textView.setText(data.get(i).getTitle());
ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s(),holder2.imageView,options);
ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s02(),holder2.imageView1,options);
return view;
}else {
Holder3 holder3;
if(view==null){
holder3=new Holder3();
view=View.inflate(context, R.layout.image_three,null);
holder3.imageView=view.findViewById(R.id.img1);
holder3.imageView1=view.findViewById(R.id.img2);
holder3.imageView2=view.findViewById(R.id.img3);
holder3.textView=view.findViewById(R.id.tv);
view.setTag(holder3);
}else {
holder3= (Holder3) view.getTag();
}
holder3.textView.setText(data.get(i).getTitle());
ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s(),holder3.imageView,options);
ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s02(),holder3.imageView1,options);
ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s03(),holder3.imageView2,options);
return view;
}
}
class Holder1{
ImageView imageView;
TextView textView;
}
class Holder2{
ImageView imageView;
ImageView imageView1;
TextView textView;
}
class Holder3{
ImageView imageView;
ImageView imageView1;
ImageView imageView2;
TextView textView;
}
}