图片专题 一 Universal Image Loader 简易教程

概述

基本用法

导入

方法一:由于 github 上提供 jar下载,我们只需要下载 jar到我们的 libs 目录,然后右键 add as libraries 就可以了。

方法二:在 Androidstudio 中 modle 的 build.gradle 的 dependencies 节点下加入下面的依赖

compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.4'

最简单用法

public class SimplyActivity extends Activity {
ImageView singleImgv;
ImageLoader loader;
ImageView secondImgv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_simply);
init();
}

private void init() {
    singleImgv = (ImageView) findViewById(R.id.imgv_single);
    secondImgv = (ImageView) findViewById(R.id.imgv_two);
    loader = LoadersFactory.getDefaultLoader(this);
    // 粗暴调用
    loader.displayImage(DataFactory.urls[0],singleImgv);

    //  含有友好成分的调用
    loader.loadImage(DataFactory.urls[0], new SimpleImageLoadingListener(){
        @Override
        public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
            super.onLoadingFailed(imageUri, view, failReason);
        }

        @Override
        public void onLoadingStarted(String imageUri, View view) {
            Toast.makeText(SimplyActivity.this,"onLoadingStarted",Toast.LENGTH_SHORT).show();
            super.onLoadingStarted(imageUri, view);
        }

        @Override
        public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
            Toast.makeText(SimplyActivity.this,"onLoadingComplete",Toast.LENGTH_SHORT).show();
            Bitmap bitmap =loadedImage;
            secondImgv.setImageBitmap(loadedImage);
            super.onLoadingComplete(imageUri, view, loadedImage);
        }

        @Override
        public void onLoadingCancelled(String imageUri, View view) {
            super.onLoadingCancelled(imageUri, view);
        }
    });
}
}

获得 Loader 的代码

/**
 * 获取默认的 ImageLoader 对象
 * @param context
 * @return
 */
public static ImageLoader getDefaultLoader(Context context){
    ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(context);
    ImageLoader.getInstance().init(configuration);
    ImageLoader loader = ImageLoader.getInstance();
    return loader;
}

显示效果:

这里写图片描述

内存大小分析,没有压缩Bitmap 对象,严重浪费,根据下面的显示效果可知,Bitmap 的宽和高都是原始宽高

这里写图片描述

这个是原图的属性

这里写图片描述

框架架构:

这里写图片描述

架构的解释:
首先你要在一个 ImageView 或者 ImageAware 上显示一个图片的时候,会调用 ImageLoader 的功能方法,例如LoadImage()系列方法,然后由 ImageLoader 中的 ImageLoaderEngine 去执行加载任务,加载任务分为几类,首先会根据图片URL和大小作为 Key 值去内存查找,然后

其他学习参考:

关于框架的 api javadoc 你下载红色方框后的jar包,找到文件夹,解压下面的文件,然后打开index.hmtl,就可以看到所有的 class 和包的组织结构了

这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值