banner实现流+网络获取图片设置

来源:互联网 发布:js set array 转换 编辑:程序博客网 时间:2024/06/05 07:20

其实banner很简单 没有想象中的那么麻烦需要传过来的是url地址集合首先创建初始化类public class chushihua extends Application{    @Override    public void onCreate() {        super.onCreate();        ImageLoaderutils.initImageLoader(this);    }}然后 主页面创建方法private void setBanner(List<String> urls)banner=获取idbanner.setImageLoader(一个继承ImageLoader类)类中public void displayImage(Context context, Object path, ImageView imageView) {    //params2:图片路径  params3:显示的控件上    com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage(path.toString(),imageView,            ImageLoaderutils.getImageOption(context));//这个方法是调用其他方法如下}public class ImageLoaderutils {    //初使化    public static void initImageLoader(Context context){        //自定义磁盘缓存路径  系统默认的缓存路径 sd...<package>..cache  当app被卸载时,此路径下的缓存图片一并被删除        //File cacheDir=getExternalCacheDir();        File cacheDir= new File(Environment.getExternalStorageDirectory().getPath()+"/aaa");//自定义 sd卡的缓存路径        //第一步:对ImageLoader进行初使化        ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(context)                .memoryCacheExtraOptions(320, 450) // default = device screen dimensions 内存缓存文件的最大长宽                .diskCacheExtraOptions(480, 800, null)  // 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个                .threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级                .tasksProcessingOrder(QueueProcessingType.FIFO) // default                .denyCacheImageMultipleSizesInMemory()                .memoryCache(new LruMemoryCache(10 * 1024 * 1024)) //可以通过自己的内存缓存实现                .memoryCacheSize(2 * 1024 * 1024)  // 内存缓存的最大值                .memoryCacheSizePercentage(13) // default                .diskCache(new UnlimitedDiskCache(cacheDir)) // 磁盘缓存 --default 可以自定义缓存路径                .diskCacheSize(20 * 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(configuration);    }    public  static  DisplayImageOptions getImageOption(Context context){        DisplayImageOptions 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)//设置图片色彩模式                .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式===imageView,,ScaleType                .displayer(new RoundedBitmapDisplayer(50))//设置图片圆角显示  弧度                .build();        return  options;    }}然后banner.setImages(croll);croll是banner需要轮播的图签集合 或者网络已经获取下来的图片banner.start();//启动banner