第二个综合题的适配器

来源:互联网 发布:linux 用户目录权限 编辑:程序博客网 时间:2024/05/16 14:01

package adapter;


import android.content.Context;

import android.graphics.Bitmap;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.TextView;


import com.example.zhanhaoxuan.second_exam_week.R;

import com.nostra13.universalimageloader.core.DisplayImageOptions;

import com.nostra13.universalimageloader.core.ImageLoader;

import com.nostra13.universalimageloader.core.assist.ImageScaleType;

import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;


import java.util.List;


import bean.Result;


/**

 * Created by zhanhaoxuan on 2017/12/9.

 */


public class Myadapter extends BaseAdapter {

    private Context context;

    private List<Result.ResultsBean> data;

private int NO_IMAGE=0;

    private int HAS_IMAGE=1;

    public Myadapter(Context context, List<Result.ResultsBean> data) {

        this.context = context;

        this.data = data;

    }


    @Override

    public int getItemViewType(int position) {

        List<String> images = data.get(position).getImages();

        if (images != null&&images.size()>0) {

            return HAS_IMAGE;

        } else {

            return NO_IMAGE;

        }

    }


    @Override

    public int getViewTypeCount() {

        return 2;

    }


    @Override

    public int getCount() {

        return data.size();

    }


    @Override

    public Object getItem(int position) {

        return data.get(position);

    }


    @Override

    public long getItemId(int position) {

        return position;

    }

    //第二步:进行图片的显示配置

    DisplayImageOptions 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)//设置图片的缩放模式===imageView,,ScaleType

            .displayer(new RoundedBitmapDisplayer(50))//设置图片圆角显示 弧度

            .build();


    @Override

    public View getView(int position, View convertView, ViewGroup parent) {

        int type = getItemViewType(position);

        if (type==HAS_IMAGE){


            viewHolder holder=new viewHolder();

            if (convertView==null){

                convertView=View.inflate(context, R.layout.item_layout,null);

                holder.img=convertView.findViewById(R.id.img);

                holder.tv=convertView.findViewById(R.id.tv);

                convertView.setTag(holder);


            }else {

                holder=(viewHolder) convertView.getTag();

            }

            holder.tv.setText(data.get(position).getDesc());

            //第三步:下载图片

            ImageLoader.getInstance().displayImage(data.get(position).getImages().get(0),

                    holder.img,

                    options);

        }else if(type==NO_IMAGE){

            viewHolder2 holder2=new viewHolder2();

            if (convertView==null){

                convertView=View.inflate(context, R.layout.item_layout2,null);


                holder2.tv2=convertView.findViewById(R.id.tv2);

                convertView.setTag(holder2);


            }else {

                holder2=(viewHolder2) convertView.getTag();

            }

            holder2.tv2.setText(data.get(position).getDesc());

        }


        return convertView;

    }


    class viewHolder2{

        TextView tv2;

    }



    class viewHolder{

        ImageView img;

        TextView tv;


    }

}


原创粉丝点击