您的位置:首页 > 其它

listview多条目加载

2017-10-14 10:07 309 查看
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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: