不同Item的加载

原创 2018年04月17日 20:45:02
public class Myadapter extends BaseAdapter {
      private List<ReuslDate.NewslistBean> list;
      private Context context;
      private final DisplayImageOptions options;
      private final int ITEM=0;
      private final int ITEM1=1;


    public Myadapter(List<ReuslDate.NewslistBean> list, Context context) {
        this.list = list;
        this.context = context;
    //显示适配
        //2.显示配置
        //使用内存缓存
//使用磁盘缓存
//设置正在下载的图片
//url为空或请求的资源不存在时
//下载失败时显示的图片
//设置图片色彩模式  1px=2个字节  ARGB_8888 1px=4个字节   ARGB_4444 1px=2个字节  ALPHA_8 1px=1个字节
//设置图片的缩放模式
//设置图片的圆角 注意:控件必须要设定宽度与高度
        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个字节  ARGB_8888 1px=4个字节   ARGB_4444 1px=2个字节  ALPHA_8 1px=1个字节
                .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
                .displayer(new RoundedBitmapDisplayer(100))//设置图片的圆角 注意:控件必须要设定宽度与高度
                .build();

    }
//得到不同类型的视图总数量


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

    @Override
    public int getItemViewType(int position) {
        if (position%2==0){
            //偶数行
            return ITEM;
        }else{
            return ITEM1;
        }
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int i) {
        return list.get(i);
    }

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

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        //1.调用getItemViewType,确定当条目展示的类型,然后加载不同的布局文件
        int itemviewtype=getItemViewType(i);
    ViewHoder hoder;
    if (itemviewtype==ITEM){
        if (view==null){
            view=View.inflate(context,R.layout.istitem,null);
            hoder=new ViewHoder();
            hoder.text1=view.findViewById(R.id.text1);
            hoder.text2=view.findViewById(R.id.text2);
            hoder.image=view.findViewById(R.id.image);
            view.setTag(hoder);


        }else{
            hoder= (ViewHoder) view.getTag();
        }

        hoder.text1.setText(list.get(i).getTitle());
        hoder.text2.setText(list.get(i).getDescription());
        if (list.get(i).getPicUrl()!=null && list.get(i).getPicUrl().length()>0){
            ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(),hoder.image,options);

        }
        return view;

    }else {

        ViewHolder1 viewHolder1;
        if(view==null){
            viewHolder1=new ViewHolder1();
            view=View.inflate(context,R.layout.item1,null);
            viewHolder1.etext1=view.findViewById(R.id.etext1);
            view.setTag(viewHolder1);
        }else {
            viewHolder1= (ViewHolder1) view.getTag();
        }
        viewHolder1.etext1.setText(list.get(i).getTitle());



      return view;
    }

    }

    class ViewHoder{
        TextView text1;
        TextView text2;
        ImageView image;
    }
    class ViewHolder1{

        TextView etext1;
    }
}

ListView加载不同Item布局的问题

ListView加载不同的Item,实现聊天界面
  • jhg1204
  • jhg1204
  • 2016-04-29 12:04:40
  • 2032

Android recyclerview加载不同item

最近在看慕课网的学习视频看见了一个用recyclerview加载不同的item看了看就按着他的原理写了下来成了一个demo,希望能帮助有用的人。 慕课地址:http://www.imooc.com/...
  • mr_zdd
  • mr_zdd
  • 2016-10-19 15:36:07
  • 2190

ListView的不同item加载不同Layout

ListView的不同item加载不同Layout
  • u012827205
  • u012827205
  • 2014-07-29 11:21:40
  • 9047

RecyclerView显示不同item

  • 2017年03月09日 10:20
  • 19.63MB
  • 下载

Android开发笔记之RecycleView加载不同item布局的实现

RecycleView是安卓5.0版本以后推出的新控件优点 想要控制其显示的方式,请通过布局管理器LayoutManager 想要控制Item间的间隔(可绘制),请通过ItemDecoration 想...
  • u012416955
  • u012416955
  • 2016-07-31 15:51:21
  • 4557

RecyclerView中显示不同的item

测试代码: activity_main.xml
  • xzylx1
  • xzylx1
  • 2015-12-29 10:59:50
  • 4614

GridView设置不同的item(布局)

  • 2016年10月29日 11:50
  • 5KB
  • 下载

RecycleView加载不同条目

最近找工作,总结知识点,需求是RecycleVIew的使用,在简书上找到一篇文章写得很好,拿来使用一下,方便学习.重复使用一个布局很多次,单单是布局的话用include就可以了,但是逻辑也要复用,而且...
  • ChatHello
  • ChatHello
  • 2017-04-05 08:48:23
  • 1000

Android ListView加载不同的item

实现代码 Adapter的代码 其中:ViewHolder分别是三个不同的布局,也就是ListView中每一项的布局 TYPE_1...是三种类型. 在使用不同布局的时候,ge...
  • summertime2013
  • summertime2013
  • 2015-03-12 19:08:07
  • 687

ListView加载两种Item样式问题总结

ListVeiw的重要性不多说,总结今天一下使用LIstView加载两种Item样式的情况 要加载两种item样式,两个item样式xml文件肯定需要准备好 个人觉得 id望文生义很重要,...
  • sinat_31841263
  • sinat_31841263
  • 2016-08-11 01:50:18
  • 929
收藏助手
不良信息举报
您举报文章:不同Item的加载
举报原因:
原因补充:

(最多只允许输入30个字)