ImageLoaderUtil多条目加载

来源:互联网 发布:涉外商标代理人 知乎 编辑:程序博客网 时间:2024/05/22 15:45

      这是xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:orientation="vertical"    android:padding="10dp"    android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:id="@+id/text_title"        android:layout_width="match_parent"        android:layout_height="wrap_content" />    <ImageView        android:id="@+id/image_view"        android:layout_width="match_parent"        android:layout_height="200dp" /></LinearLayout>
             MyAdapter适配器

     

package com.example.a08_iamgeloader_demo;import android.content.Context;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.ImageLoader;import java.util.List;/** * Created by bawei on 2017/10/10. * */public class MyAdapter extends BaseAdapter {    List<DataDataBean.ResultBean.ListBean> list;    Context context;    private int TYTLE_ONLY = 0;//只有文字的形式    private int IMAGE_LEFT = 1;//表示图片在左边,文字在右边    private int IMAGE_RIGHT = 2;//* 2表示图片在右边,文字在左边    private int IMAGE_BOTTOM = 3;// *    public MyAdapter(List<DataDataBean.ResultBean.ListBean> list, Context context) {        this.list = list;        this.context = context;    }    @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;    }    /**     * 1.适配器中重写这个getViewTypeCount方法...得到视图类型的数量,,,也就是listView要展示多少种不同的视图     *     * @return     */    @Override    public int getViewTypeCount() {        return 4;    }    /**     * 2.重写适配器中getItemViewType方法...返回当前条目视图的类型,,,返回值是int值     *     * int返回值是有限制的,,,,例如getViewTypeCount返回的是4,,,那么他的取值只能是0,1,2,3     *     * 0表示第一种,,只有一个表题的条目样式     * 1表示图片在左边,文字在右边     * 2表示图片在右边,文字在左边     * 3表示文字在上边,图片在下面     *     * 实际开发中显示哪种条目的类型是根据接口数据中具体的那个字段值来决定的     *     * 现在,,例如...position%4     * @param position     * @return     */    @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 View getView(int i, View view, ViewGroup viewGroup) {        //在做优化之前先判断一下当前条目展示的是哪一种类型,,,然后再进行关联布局进行优化        if (getItemViewType(i) == TYTLE_ONLY){            TitleHolder holder;            if (view == null){                view = View.inflate(context, R.layout.item_title_layout,null);                holder = new TitleHolder();                holder.textView = (TextView) view.findViewById(R.id.text_title);                view.setTag(holder);            }else {                holder = (TitleHolder) view.getTag();            }            //赋值            holder.textView.setText(list.get(i).getTitle());        }else if (getItemViewType(i) == IMAGE_LEFT){            ImageLeftHolder holder;            if (view == null){                view = View.inflate(context, R.layout.item_layout,null);                holder = new ImageLeftHolder();                holder.textView = (TextView) view.findViewById(R.id.text_title);                holder.imageView = (ImageView) view.findViewById(R.id.image_view);                view.setTag(holder);            }else {                holder = (ImageLeftHolder) view.getTag();            }            //赋值            holder.textView.setText(list.get(i).getTitle());            //显示图片            ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),holder.imageView, ImageLoaderUtil.getDefaultOption());        }else if (getItemViewType(i) == IMAGE_RIGHT){            ImageRightHolder holder;            if (view == null){                view = View.inflate(context, R.layout.item_right_layout,null);                holder = new ImageRightHolder();                holder.textView = (TextView) view.findViewById(R.id.text_title);                holder.imageView = (ImageView) view.findViewById(R.id.image_view);                view.setTag(holder);            }else {                holder = (ImageRightHolder) view.getTag();            }            //赋值            holder.textView.setText(list.get(i).getTitle());            //显示图片            ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),holder.imageView, ImageLoaderUtil.getDefaultOption());        }else if (getItemViewType(i) == IMAGE_BOTTOM){            ImageBottomHolder holder;            if (view == null){                view = View.inflate(context, R.layout.item_bottom_layout,null);                holder = new ImageBottomHolder();                holder.textView = (TextView) view.findViewById(R.id.text_title);                holder.imageView = (ImageView) view.findViewById(R.id.image_view);                view.setTag(holder);            }else {                holder = (ImageBottomHolder) view.getTag();            }            //赋值            holder.textView.setText(list.get(i).getTitle());            //显示图片            ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),holder.imageView, ImageLoaderUtil.getDefaultOption());        }        return view;    }    private class TitleHolder{        TextView textView;    }    private class ImageLeftHolder{        TextView textView;        ImageView imageView;    }    private class ImageRightHolder{        TextView textView;        ImageView imageView;    }    private class ImageBottomHolder{        TextView textView;        ImageView imageView;    }}

原创粉丝点击