加载多条目视图
来源:互联网 发布:windows 10 QQ登录上限 编辑:程序博客网 时间:2024/06/15 22:20
1.适配器
因为多条目要多写两个重写方法,适配器视图优化
package com.example.my09lianxi.activity.activity.myactivity.adapter;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.example.my09lianxi.R;import com.example.my09lianxi.activity.activity.myactivity.Bean.Data;import com.example.my09lianxi.activity.activity.myactivity.Util.ImageLoaderUtil;import com.example.my09lianxi.activity.activity.myactivity.activity.MainActivity;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * Created by Administrator on 2017/10/10 0010. */public class Myadapter1 extends BaseAdapter { List<Data.ResultBean.ListBean> list; Context con; //0只有文字的形式 //1表示图片在左边,文字在右边 //* 2表示图片在右边,文字在左边 // * 3表示文字在上边,图片在下面 int a=0; int b=1; int c=2; int d=3; public Myadapter1(List<Data.ResultBean.ListBean> list, Context con) { this.list = list; this.con = con; } @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 int getViewTypeCount() { return 4; } @Override public int getItemViewType(int position) { if (position%4==0){ return a; }else if (position%4==1){ return b; }else if (position%4==2){ return c; } return d; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if (getItemViewType(i)==a){ viewhplder0 vh; if (view==null){ view=View.inflate(con, R.layout.child0,null); vh=new viewhplder0(); vh.textView= (TextView) view.findViewById(R.id.name); view.setTag(vh); }else{ vh= (viewhplder0) view.getTag(); } vh.textView.setText(list.get(i).getTitle()); }else if(getItemViewType(i)==b){ viewhplder1 vh; if (view==null){ view=View.inflate(con, R.layout.child1,null); vh=new viewhplder1(); vh.imageView= (ImageView) view.findViewById(R.id.img); vh.textView= (TextView) view.findViewById(R.id.name); view.setTag(vh); }else{ vh= (viewhplder1) view.getTag(); } vh.textView.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),vh.imageView, ImageLoaderUtil.myadapter()); } else if(getItemViewType(i)==c){ viewhplder2 vh; if (view==null){ view=View.inflate(con, R.layout.child2,null); vh=new viewhplder2(); vh.imageView= (ImageView) view.findViewById(R.id.img); vh.textView= (TextView) view.findViewById(R.id.name); view.setTag(vh); }else{ vh= (viewhplder2) view.getTag(); } vh.textView.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),vh.imageView, ImageLoaderUtil.myadapter()); } else if(getItemViewType(i)==d){ viewhplder3 vh; if (view==null){ view=View.inflate(con, R.layout.child3,null); vh=new viewhplder3(); vh.imageView= (ImageView) view.findViewById(R.id.img); vh.textView= (TextView) view.findViewById(R.id.name); view.setTag(vh); }else{ vh= (viewhplder3) view.getTag(); } vh.textView.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),vh.imageView, ImageLoaderUtil.myadapter()); } return view; } class viewhplder0{ TextView textView; } class viewhplder1{ ImageView imageView; TextView textView; } class viewhplder2{ ImageView imageView; TextView textView; } class viewhplder3{ ImageView imageView; TextView textView; }}2. 创建一个类继承一个应用Application
package com.example.my09lianxi.activity.activity.myactivity.BaseApplication;import android.app.Application;import com.example.my09lianxi.activity.activity.myactivity.Util.ImageLoaderUtil;/** * Created by Administrator on 2017/10/10 0010. */public class BaseApplication extends Application{ @Override public void onCreate() { super.onCreate(); //在应用创建的时候,,,对imageLoader进行全局配置 //写一个工具类对imageLoader进行初始化...应用也可以作为上下文 ImageLoaderUtil.info(this); }}3.ImageLoader工具类package com.example.my09lianxi.activity.activity.myactivity.Util;import android.content.Context;import android.graphics.Bitmap;import android.os.Handler;import com.example.my09lianxi.R;import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import com.nostra13.universalimageloader.core.assist.ImageScaleType;import com.nostra13.universalimageloader.core.assist.QueueProcessingType;import com.nostra13.universalimageloader.core.decode.BaseImageDecoder;import com.nostra13.universalimageloader.core.display.CircleBitmapDisplayer;import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer;import com.nostra13.universalimageloader.core.download.BaseImageDownloader;import com.nostra13.universalimageloader.utils.StorageUtils;import java.io.File;/** * Created by Administrator on 2017/10/10 0010. */public class ImageLoaderUtil { public static void info(Context context){ File cacheDir = StorageUtils.getCacheDirectory(context); //缓存文件夹路径 ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context) .threadPoolSize(3) // default 线程池内加载的数量 .threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级 .tasksProcessingOrder(QueueProcessingType.FIFO) // default .denyCacheImageMultipleSizesInMemory() .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //可以通过自己的内存缓存实现 .memoryCacheSize(2 * 1024 * 1024) // 内存缓存的最大值 .memoryCacheSizePercentage(13) // default .diskCache(new UnlimitedDiskCache(cacheDir)) // default 可以自定义缓存路径 .diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值 .diskCacheFileCount(100) // 可以缓存的文件数量 // default为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new Md5FileNameGenerator())加密 .diskCacheFileNameGenerator(new HashCodeFileNameGenerator()) .imageDownloader(new BaseImageDownloader(context)) // default .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default .writeDebugLogs() // 打印debug log .build(); //开始构建 ImageLoader.getInstance().init(config); } public static DisplayImageOptions myadapter(){ DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片 .showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片 .showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片 .resetViewBeforeLoading(true) // default 设置图片在加载前是否重置、复位 .delayBeforeLoading(1000) // 下载前的延迟时间 .cacheInMemory(true) // default 设置下载的图片是否缓存在内存中 .cacheOnDisk(true) // default 设置下载的图片是否缓存在SD卡中 .imageScaleType(ImageScaleType.EXACTLY_STRETCHED) // default 设置图片以如何的编码方式显示 .bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型 .displayer(new RoundedBitmapDisplayer(20)) // default 还可以设置圆角图片new RoundedBitmapDisplayer(20) .handler(new Handler()) // default .build(); return options; }}
阅读全文
0 0
- 加载多条目视图
- recyclerView 多条目视图
- ListView多条目加载
- ListView 多条目加载
- listview多条目加载
- ListView多条目加载
- listview多条目加载
- 多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- xlistview多条目加载
- android多条目加载
- ListView多条目加载
- listview多条目加载
- 多条目加载
- Listview多条目加载
- ListView多条目加载
- DCMTK(MD版)编译和安装+VS2015
- gdb断点
- Bzoj
- 带下拉框的动态折线图表
- SPI极性与相位简介
- 加载多条目视图
- jQuery选择器中,通配符[id^='code']input[id$='code'][id*='code']
- Python(基础)第六天
- myeclipse设置主题和颜色
- 如何正确理解三极管的放大区、饱和区、截止区
- android Process finished with exit code 0
- PHP递归函数实例详解
- namp 渗透测试-安装篇
- JavaScript 函数式编程