当前位置:   article > 正文

Android网络图片加载框架:Universal-ImageLoader简介_lmageloader是网络框架

lmageloader是网络框架
  • 网络图片加载框架:Universal-ImageLoader
    • github开源地址:https://github.com/nostra13/Android-Universal-Image-Loader
    • 特点:
    • 支持本地图片,网络图片多线程异步加载及缓存处理
    • 根据自己项目个性化配置ImageLoader来加载图片
    • 图片加载过程监听处理,可以暂停图片加载,重新加载等
    • 根据当前内存情况自动处理图片,防止OOM
    • 不完善之处:没有对本地文件压缩处理的相关方法,默认都是Src模式设置图片,没有针对图片的Background属性开放API
      使用:
/**
 * 使用universal-imageloader框架时,在Application中进行初始化及配置操作
 * @description:
 * @date 2016-1-12 下午4:18:34
 */
public class MyApplication extends Application {
public static ImageLoader loader;
    @Override
    public void onCreate() {
        initConfiguration();
    }

    /**
     * 初始化ImageLoaderConfiguration,通常不需要设置这么多属性
     * @description:
     * @author ldm
     * @date 2016-1-12 下午4:42:31
     */
    private void initConfiguration() {
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).memoryCacheExtraOptions(480, 800) // 设置内存缓存文件的最大长宽
                .diskCacheExtraOptions(480, 800, null) // 设置本地缓存的详细信息(缓存的最大长宽),最好不要设置这个
                .threadPoolSize(3) // 设置线程池内加载的数量
                .threadPriority(Thread.NORM_PRIORITY - 2) // 设置当前线程的优先级
                .tasksProcessingOrder(QueueProcessingType.FIFO) // 设置缓存策略
                .denyCacheImageMultipleSizesInMemory()// 设置缓存显示不同大小的同一张图片
                .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) // 设置通过自己的内存缓存实现
                .memoryCacheSize(2 * 1024 * 1024) // 设置内存缓存的最大值
                .memoryCacheSizePercentage(13) // 设置内存缓存最大大小占当前应用可用内存的百分比,默认是当前应用可用内存的1/8
                .discCache(new UnlimitedDiskCache(new File(Environment.getExternalStorageDirectory() + "mydata/imagecaches")))// 设置缓存文件目录
                .diskCacheSize(50 * 1024 * 1024) // 设置 sd卡(本地)缓存的最大值50M
                .diskCacheFileCount(100) // 设置可以缓存的文件数量
                // .diskCacheFileNameGenerator(new Md5FileNameGenerator()) 设置保存的URL用MD5加密
                .imageDownloader(new BaseImageDownloader(this)) // 设置默认最大连接时间
                .imageDecoder(new BaseImageDecoder(false)) // default
                .defaultDisplayImageOptions(getDisplayOptions()) // 设置自定义的DisplayImageOptions
                .writeDebugLogs() // 设置打印log
                .build(); // 开始构建
        ImageLoader.getInstance().init(config);
        loader=ImageLoader.getInstance();
    }

    /**
     * 自定义DisplayImageOptions
     * @description:
     * @date 2016-1-12 下午4:46:47
     */
    private DisplayImageOptions getDisplayOptions() {
        DisplayImageOptions options = new DisplayImageOptions.Builder().showImageOnLoading(R.drawable.ic_launcher) // 设置图片在下载中显示的图片
                .showImageForEmptyUri(R.drawable.ic_launcher)// 设置图片Uri为空或错误时显示的图片
                .showImageOnFail(R.drawable.ic_launcher) // 设置图片加载失败时候显示的图片
                .cacheInMemory(true)// 设置下载的图片是否缓存在内存中
                .cacheOnDisk(true)// 设置下载的图片是否缓存在SD卡中
                .considerExifParams(true) // 是否考虑JPEG图像EXIF参数(旋转,翻转)
                .imageScaleType(ImageScaleType.IN_SAMPLE_INT)// 设置图片以如何的编码方式显示
                .bitmapConfig(Bitmap.Config.RGB_565)// 设置图片的解码类型
                .delayBeforeLoading(0)// 设置的下载前的延迟时间
                .resetViewBeforeLoading(true)// 设置图片在下载前是否重置,复位
                .displayer(new RoundedBitmapDisplayer(20))// 设置为圆角,弧度为多少,不推荐用!
                .displayer(new FadeInBitmapDisplayer(100))// 设置加载好后渐入的动画时间,可能会出现闪动
                .build();// 构建完成
        return options;
    }
}
在Activity中使用:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64

这里写代码片

public class MainActivity extends Activity {
    private ImageView loader_iv;
    private ImageLoader loader;
    private String url="";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        loader_iv=(ImageView)findViewById(R.id.loader_iv);
        loader=MyApplication.loader;//
        loader=ImageLoader.getInstance();
        loader.displayImage(url, loader_iv);//loader.displayImage有很多参数不同的方法,方便我们针对 不同情况使用
        //如果显示本地图片
        url="file:///"+"文件路径";
        loader.displayImage(url, loader_iv);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

最后不要忘记在AndroidManifest.xml中配置MyApplication及INTENT网络请求权限 。更多 方法正在学习中。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/105755
推荐阅读
相关标签
  

闽ICP备14008679号