public class MyAdapter extends BaseAdapter {
private Context context;
private List<Result.ResultsEntity> datas;
//只有文本
private final int ONLY_TITLE=0;
//有图片且在右边
private final int ONLY_IMAGE_RIGHT=1;
//2.设置显示图片的类
private DisplayImageOptions options;
public MyAdapter(Context context, List<Result.ResultsEntity> datas) {
this.context = context;
this.datas = datas;
//只需要初使化一次
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)//设置图片显示的色彩模式
.displayer(new RoundedBitmapDisplayer(20))//设置圆角图片
.build();
// .imageScaleType() 设置图片的缩放方式的方法
}
//返回视图类型的个数
@Override
public int getViewTypeCount() {
return 2;
}
//根据条目的下标,得到此条目到底应该是显示哪种类型视图,返回的是int
@Override
public int getItemViewType(int position) {
//根据数据来判断,显示哪种类型
List<String> picurls=datas.get(position).getImages();
if(picurls==null){
return ONLY_TITLE;//返回文本类型
}else if(picurls!=null && picurls.size()==1){//集合长度是1
return ONLY_IMAGE_RIGHT;//返回图片类型
}else{
return ONLY_TITLE;//返回文本类型
}
}
@Override
public int getCount() {
return datas.size();
}
@Override
public Object getItem(int position) {
return datas.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
//判断条目的类型
int type=getItemViewType(position);
Log.d("zzz","type:"+type+" position:"+position);
if(type==ONLY_TITLE){
ViewHolderTitle holderTitle;
if(convertView==null){
holderTitle=new ViewHolderTitle();
convertView=View.inflate(context,R.layout.item_title,null);
holderTitle.tvTitle=(TextView) convertView.findViewById(R.id.tvtitle);
convertView.setTag(holderTitle);
}else{
holderTitle=(ViewHolderTitle) convertView.getTag();
}
//显示数据
holderTitle.tvTitle.setText(datas.get(position).getDesc());
return convertView;
}else if(type==ONLY_IMAGE_RIGHT){
ViewHolderImage holderImage;
if(convertView==null){
holderImage=new ViewHolderImage();
convertView=View.inflate(context,R.layout.item_image,null);
holderImage.tvTitle=(TextView) convertView.findViewById(R.id.tvtitle);
holderImage.img=(ImageView) convertView.findViewById(R.id.img);
convertView.setTag(holderImage);
}else{
holderImage=(ViewHolderImage) convertView.getTag();
}
//显示数据
holderImage.tvTitle.setText(datas.get(position).getDesc());
//显示图片
ImageLoader.getInstance().displayImage(datas.get(position).getImages().get(0),holderImage.img,options);
Log.d("zzz","type:"+type+" "+datas.get(position).getImages().get(0));
return convertView;
}else{
}
return convertView;
}
class ViewHolderTitle{
TextView tvTitle;
}
class ViewHolderImage{
ImageView img;
TextView tvTitle;
}
}
private Context context;
private List<Result.ResultsEntity> datas;
//只有文本
private final int ONLY_TITLE=0;
//有图片且在右边
private final int ONLY_IMAGE_RIGHT=1;
//2.设置显示图片的类
private DisplayImageOptions options;
public MyAdapter(Context context, List<Result.ResultsEntity> datas) {
this.context = context;
this.datas = datas;
//只需要初使化一次
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)//设置图片显示的色彩模式
.displayer(new RoundedBitmapDisplayer(20))//设置圆角图片
.build();
// .imageScaleType() 设置图片的缩放方式的方法
}
//返回视图类型的个数
@Override
public int getViewTypeCount() {
return 2;
}
//根据条目的下标,得到此条目到底应该是显示哪种类型视图,返回的是int
@Override
public int getItemViewType(int position) {
//根据数据来判断,显示哪种类型
List<String> picurls=datas.get(position).getImages();
if(picurls==null){
return ONLY_TITLE;//返回文本类型
}else if(picurls!=null && picurls.size()==1){//集合长度是1
return ONLY_IMAGE_RIGHT;//返回图片类型
}else{
return ONLY_TITLE;//返回文本类型
}
}
@Override
public int getCount() {
return datas.size();
}
@Override
public Object getItem(int position) {
return datas.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
//判断条目的类型
int type=getItemViewType(position);
Log.d("zzz","type:"+type+" position:"+position);
if(type==ONLY_TITLE){
ViewHolderTitle holderTitle;
if(convertView==null){
holderTitle=new ViewHolderTitle();
convertView=View.inflate(context,R.layout.item_title,null);
holderTitle.tvTitle=(TextView) convertView.findViewById(R.id.tvtitle);
convertView.setTag(holderTitle);
}else{
holderTitle=(ViewHolderTitle) convertView.getTag();
}
//显示数据
holderTitle.tvTitle.setText(datas.get(position).getDesc());
return convertView;
}else if(type==ONLY_IMAGE_RIGHT){
ViewHolderImage holderImage;
if(convertView==null){
holderImage=new ViewHolderImage();
convertView=View.inflate(context,R.layout.item_image,null);
holderImage.tvTitle=(TextView) convertView.findViewById(R.id.tvtitle);
holderImage.img=(ImageView) convertView.findViewById(R.id.img);
convertView.setTag(holderImage);
}else{
holderImage=(ViewHolderImage) convertView.getTag();
}
//显示数据
holderImage.tvTitle.setText(datas.get(position).getDesc());
//显示图片
ImageLoader.getInstance().displayImage(datas.get(position).getImages().get(0),holderImage.img,options);
Log.d("zzz","type:"+type+" "+datas.get(position).getImages().get(0));
return convertView;
}else{
}
return convertView;
}
class ViewHolderTitle{
TextView tvTitle;
}
class ViewHolderImage{
ImageView img;
TextView tvTitle;
}
}