zoukankan      html  css  js  c++  java
  • Android学习笔记-Universal-Image-Loade图片加载框架

    Universal-Image-Loade是一种图片加载框架,使用它可以更高效的加载图片,下面我们就来说一下他的具体用法

    首先我们先来依赖:compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'

    依赖完成之后我们先来初始化
    1        ImageLoaderConfiguration loaderConfiguration = ImageLoaderConfiguration.createDefault(this);
    2         ImageLoader.getInstance().init(loaderConfiguration);

    之后我们就可以来使用他了

    这是最简单的加载方法

    1         ImageView imageView = (ImageView) findViewById(R.id.image_id);
    2         String strUrl = "http://img06.tooopen.com/images/20161112/tooopen_sy_185726882764.jpg";
    3         //第一个参数为图片地址,第二个参数为显示的图片框
    4         ImageLoader.getInstance().displayImage(strUrl,imageView);

    下面这一种是带监听器的加载方法,已加载中,开始,失败

     1          //带监听器的加载
     2        ImageLoader.getInstance().loadImage(stUrl,new SimpleImageLoadingListener(){
     3             //加载成功
     4             @Override
     5             public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
     6                 //为加载成功的时候设置成功的图片
     7                 imageView.setImageBitmap(loadedImage);
     8             }
     9             //加载失败时调用
    10             @Override
    11             public void onLoadingCancelled(String imageUri, View view) {
    12                 //为加载失败的时候设置失败的图片
    13                 imageView.setImageResource(R.mipmap.img_def_error);
    14                 super.onLoadingCancelled(imageUri, view);
    15             }
    16             //正在加载时调用
    17             @Override
    18             public void onLoadingStarted(String imageUri, View view) {
    19                 //为正在加载时的时候设置正在加载时的图片
    20                 imageView.setImageResource(R.mipmap.pictures_no);
    21                 super.onLoadingStarted(imageUri, view);
    22             }
    23         });

    如果这些方法还不能满足你,你可以在初始化的时候自定义一些东西

     1        DisplayImageOptions options = new DisplayImageOptions.Builder()
     2                 .showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片
     3                 .showImageForEmptyUri(R.mipmap.pictures_no) // 设置图片Uri为空或是错误的时候显示的图片
     4                 .showImageOnFail(R.mipmap.img_def_error) // 设置图片加载或解码过程中发生错误显示的图片
     5                 .resetViewBeforeLoading(false) // default 设置图片在加载前是否重置、复位
     6                 //                .delayBeforeLoading(2000)  // 下载前的延迟时间
     7                 .cacheInMemory(true) // default  设置下载的图片是否缓存在内存中
     8                 .cacheOnDisk(true) // default  设置下载的图片是否缓存在SD卡中
     9                 .considerExifParams(false) // default 是否考虑图片参数
    10                 .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default 设置图片以如何的编码方式显示
    11                 .bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型
    12                                // .displayer(new RoundedBitmapDisplayer(20)) // default  还可以设置圆角图片new RoundedBitmapDisplayer(20)
    13                 .displayer(new FadeInBitmapDisplayer(11300)) // 图片加载好后渐入的动画时间  displayImage有效
    14                               .displayer(new RoundedBitmapDisplayer(180))
    15                 // 设置成圆角图片 设置圆角图片时,必须为imageView设置具体的宽高。否则不显示.
    16                 // 且只能ImageLoader.getInstance().displayImage(url,imageView)时使用
    17                 .handler(new Handler()) // default
    18                 .build();
    19 
    20         ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this)
    21                 .memoryCacheExtraOptions(480, 800) // default = device screen dimensions 内存缓存文件的最大长宽
    22                 //                .diskCacheExtraOptions(480, 800, null)  // 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个
    23                 .threadPoolSize(4) // default  线程池内加载的数量
    24                 //                .threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级 QueueProcessingType.LIFO
    25                 .tasksProcessingOrder(QueueProcessingType.LIFO) // QueueProcessingType.FIFO  is default
    26                 .denyCacheImageMultipleSizesInMemory() //不缓存图片的多种尺寸在内存中
    27                 .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //可以通过自己的内存缓存实现
    28                 .memoryCacheSize(2 * 1024 * 1024) // 内存缓存的最大值
    29                 .memoryCacheSizePercentage(13) // default 缓存的内存大小的百分比
    30                 //                .diskCache(new DiskCache(){})//可以自定义缓存 构建接口实现类
    31                 .diskCacheSize(100 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值
    32                 //                .diskCacheFileCount(100)  // 可以缓存的文件数量
    33                 // default为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new Md5FileNameGenerator())加密
    34                 .diskCacheFileNameGenerator(new HashCodeFileNameGenerator())
    35                 //                 .connectTimeout (5 s), readTimeout (30 s)  //超时时间
    36                 .imageDownloader(new BaseImageDownloader(this, 5 * 1000, 30 * 1000)) //context,connectTimeout,readTimeout
    37                 .writeDebugLogs() // 打印debug log
    38                 //设置默认图片加载设置
    39                 .defaultDisplayImageOptions(options)
    40 
    41                 .build(); //开始构建
    42         ImageLoader.getInstance().init(configuration);

    附上一张加载方法的图片

    
    
  • 相关阅读:
    [linux]无法加载so文件错误
    linux找不到.so文件的解决方法
    [Linux]core文件调试方法
    LINUX下cp f无效问题
    解决IE无法查看源文件问题
    批处理获取exe返回结果
    不得不知 云计算入门必备的60条术语
    NMS
    开启和关闭(禁用)IE8加速器功能的办法
    钩子函数
  • 原文地址:https://www.cnblogs.com/langfei8818/p/6067338.html
Copyright © 2011-2022 走看看