listview多条目

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();


        Log.d("zzz","App入口");
        Toast.makeText(this,"app",Toast.LENGTH_SHORT).show();


        //自定义sd卡缓存目录 1.android默认cache-app被卸载时,缓存的目录一并被删除    2.自定义
//        File cachefile=getExternalCacheDir();
        File cachefile= new File(Environment.getExternalStorageDirectory().getPath()+"/images");
        //1.初使化--进行一下全局配置 Application
        ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this)
                .memoryCacheExtraOptions(400, 700)//缓存图片最大的长和宽
                .threadPoolSize(3)//线程池的数量
                .threadPriority(4)
                .memoryCacheSize(20*1024*1024)//设置内存缓存区大小
                .diskCacheSize(80*1024*1024)//设置sd卡缓存区大小
                .diskCache(new UnlimitedDiscCache(cachefile))//自定义sd卡缓存目录
                .writeDebugLogs()//打印日志内容
                .diskCacheFileNameGenerator(new Md5FileNameGenerator())//给缓存的文件名进行md5加密处理
                .build();
        ImageLoader.getInstance().init(configuration);
    }

}


   public Context context;
    public List<ResultData.NewslistBean> data;
    private final DisplayImageOptions options;


    //定义类型的int  int值必须 小于 item类型的数量,否则会报数组越界的error
    private final int ITEM_TITLE=0;//只有文字无图的类型
    private final int ITEM_IMAGE=1;//有图的类型






    //alt+insert
    public MyAdapter(Context context, List<ResultData.NewslistBean> data) {
        this.context = context;
        this.data = data;






        //2.需要创建DisplayImageOption类 两种 1,使用默认设置 2.自定义设置
        //使用内存缓存
//使用磁盘缓存
//设置正在下载的图片
//url为空或请求的资源不存在时
//下载失败时显示的图片
//设置图片色彩模式 1px=2字节
//设置图片的缩放模式
//设置圆角 30代表半径 自定义
        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();
    }




    //返回item的类型总数  多条目的数量
    @Override
    public int getViewTypeCount() {
        return 2;
    }


    //返回指定postion的条目的类型,返回的是一个int类型的值
    @Override
    public int getItemViewType(int position) {
        if(position%2==0){//是偶数
            return ITEM_IMAGE;
        }else{
            return ITEM_TITLE;//奇数行
        }


    }


    @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==ITEM_IMAGE){
            ViewHolder holder;
            if(view==null){
                view=View.inflate(context,R.layout.item,null);
                holder=new ViewHolder();
                holder.tv=view.findViewById(R.id.tv);
                holder.imageView=view.findViewById(R.id.img);
                view.setTag(holder);
            }else{
                holder=(ViewHolder) view.getTag();
            }
            holder.tv.setText(data.get(i).getTitle());
            //打印图片url路径
            Log.d("zzz",data.get(i).getPicUrl());


            //3.下载图片
            ImageLoader.getInstance().displayImage(data.get(i).getPicUrl(),holder.imageView,options);
            return view;


        }else {
            ViewHolderTitle holderTitle;
            if(view==null){
                view=View.inflate(context,R.layout.item_title,null);
                holderTitle=new ViewHolderTitle();
                holderTitle.textView=view.findViewById(R.id.tv);


                view.setTag(holderTitle);
            }else{
                holderTitle=(ViewHolderTitle) view.getTag();
            }
            holderTitle.textView.setText(data.get(i).getTitle());


            return view;




        }














    }
    //item里的控件
    class ViewHolder{
        TextView tv;
        ImageView imageView;
    }
    //item_title
    class ViewHolderTitle{
        TextView textView;
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值