listview多条目加载

package animtest.com.example.e531.listview_requestdata;

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.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

/**
 * Created by e531 on 2017/10/12.
 */
public class MyAdapter extends BaseAdapter {

    private Context context;
    private List<DataDataBean.ResultBean.ListBean> datas;


    private int TYTLE_ONLY = 0;//只有文字的形式
    private int IMAGE_LEFT = 1;//表示图片在左边,文字在右边
    private int IMAGE_RIGHT = 2;//表示图片在右边,文字在左边
    private int IMAGE_BOTTOM = 3;//表示文字在上边,图片在下面


    private DisplayImageOptions options;

    public MyAdapter(Context context, List<DataDataBean.ResultBean.ListBean> 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)//设置图片格式
                .build();
    }


    @Override
    public int getItemViewType(int position) {
        if(position%4==0){
            return TYTLE_ONLY;
        }else if(position%4==1){
            return IMAGE_LEFT;
        }else if(position%4==2){
            return IMAGE_RIGHT;
        }

        return IMAGE_BOTTOM;
    }

    @Override
    public int getViewTypeCount() {
        return 4;
    }

    @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(int position, View convertView, ViewGroup parent) {

        //首先要判断视图要显示的类型
        int type=getItemViewType(position);
        if(type==TYTLE_ONLY){
            ViewHolder holder;
            if(convertView==null){
                convertView=View.inflate(context,R.layout.item_title_layout,null);
                holder=new ViewHolder();
                holder.tvTitle=(TextView) convertView.findViewById(R.id.text_title);
                convertView.setTag(holder);
            }else{
                holder=(ViewHolder) convertView.getTag();
            }
            holder.tvTitle.setText(datas.get(position).getTitle());

        }else if(type==IMAGE_LEFT){
            ViewHolderLeft holder;
            if(convertView==null){
                convertView=View.inflate(context,R.layout.item_left_layout,null);
                holder=new ViewHolderLeft();
                holder.tvTitle=(TextView) convertView.findViewById(R.id.text_title);
                holder.imageView= (ImageView) convertView.findViewById(R.id.image_view);
                convertView.setTag(holder);
            }else{
                holder=(ViewHolderLeft) convertView.getTag();
            }

            holder.tvTitle.setText(datas.get(position).getTitle());

            //异步请求图片
            ImageLoader.getInstance().displayImage(datas.get(position).getFirstImg(),holder.imageView,options);

        }else if(type==IMAGE_RIGHT){
            ViewHolderRight holder;
            if(convertView==null){
                convertView=View.inflate(context,R.layout.item_right_layout,null);
                holder=new ViewHolderRight();
                holder.tvTitle=(TextView) convertView.findViewById(R.id.text_title);
                holder.imageView= (ImageView) convertView.findViewById(R.id.image_view);
                convertView.setTag(holder);
            }else{
                holder=(ViewHolderRight) convertView.getTag();
            }

            holder.tvTitle.setText(datas.get(position).getTitle());

            //异步请求图片
            ImageLoader.getInstance().displayImage(datas.get(position).getFirstImg(),holder.imageView,options);

        }else{
            ViewHolderBottom holder;
            if(convertView==null){
                convertView=View.inflate(context,R.layout.item_bottom_layout,null);
                holder=new ViewHolderBottom();
                holder.tvTitle=(TextView) convertView.findViewById(R.id.text_title);
                holder.imageView= (ImageView) convertView.findViewById(R.id.image_view);
                convertView.setTag(holder);
            }else{
                holder=(ViewHolderBottom) convertView.getTag();
            }

            holder.tvTitle.setText(datas.get(position).getTitle());

            //异步请求图片
            ImageLoader.getInstance().displayImage(datas.get(position).getFirstImg(),holder.imageView,options);
        }



        return convertView;
    }

    class  ViewHolder{
        TextView tvTitle;
    }
    class ViewHolderLeft{
        TextView tvTitle;
        ImageView imageView;
    }
    class ViewHolderRight{
        TextView tvTitle;
        ImageView imageView;
    }
    class ViewHolderBottom{
        TextView tvTitle;
        ImageView imageView;
    }




}


另一种Myadapter


package com.example.myapplication.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.myapplication.Bean.Bean;
import com.example.myapplication.R;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

/**
 * Created by Administrator on 2017/10/12 0012.
 */


public class MyAdapter extends BaseAdapter {



    private Context   context;
   private List<Bean.DataBean>  bean3;
    private final int i=1;
    private final int o=0;

    public MyAdapter(Context context, List<Bean.DataBean> bean3) {
        this.context = context;
        this.bean3 = bean3;
    }
    public int getCount() {
            return bean3.size();
        }
        @Override
        public Object getItem(int position) {
            return bean3.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }


        public int getViewTypeCount() {
            return 2;
        }


        public int getItemViewType(int position) {
           if(position%2==0){
               return o;
           }else{
               return i;
           }

        }


        public View getView(int position, View convertView, ViewGroup parent) {
            int type=getItemViewType(position);

            switch (type){
                case o:
                    ViewHolder1 holder;
                    if(convertView==null){
                        convertView=View.inflate(context,R.layout.item1,null);
                        holder=new ViewHolder1();

                        holder.text1= (TextView) convertView.findViewById(R.id.text1);

                        convertView.setTag(holder);
                    }else{
                        holder= (ViewHolder1) convertView.getTag();
                    }
                    holder.text1.setText(bean3.get(position).getTitle());

                    return convertView;

                case i:
                    ViewHolder2 holder2;
                    if(convertView==null){
                        convertView=View.inflate(context,R.layout.item2,null);
                        holder2=new ViewHolder2();

                        holder2.text2= (TextView) convertView.findViewById(R.id.text2);
                        holder2.img2= (ImageView) convertView.findViewById(R.id.img2);
                        convertView.setTag(holder2);
                     }else{
                         holder2= (ViewHolder2) convertView.getTag();
                    }
                     holder2.text2.setText(bean3.get(position).getTitle());

                    //第二部
                     DisplayImageOptions displayImageOptions=new DisplayImageOptions.Builder()
                             .cacheInMemory(true)//内存缓存
                             .cacheOnDisk(true)//sd卡缓存
                             .bitmapConfig(Bitmap.Config.RGB_565)
                             .build();

                    //第三部
                   ImageLoader.getInstance().displayImage(bean3.get(position).getUserImg(),holder2.img2,displayImageOptions);
                    return convertView;
            }
            return null;
        }
        class ViewHolder1{
            TextView text1;
        }
        class ViewHolder2{
            ImageView img2;
            TextView text2;
        }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值