Android ImageLoader用法总结

前言:imageloader作为一个开源的框架被广泛的使用,尤其对于新手而言,更是如此,本人在项目中每当用到imageloader的时候都是从网上百度然后复制粘贴,现在觉得那样没得意义,因此写此博客,当作以后发复习资料,同时稍微研究下imagelodaer内部用到的集合.


一,imageloader,ImageLoaderConfiguration和DisplayImageOptions之间的关系

imagelodaer是加载图片的对象,这个对象里面封装了一系列加载图方,如displayImage()方法,load()方法。imageloaderconfiguration 顾名思义是imageloader的配置对象,该对象中有一系列方法来设置下载下来的图片的大小,缓存的位置,缓存的大小等方法.DisplayImageOptions是加载图片时候设置属性,例如设置加载失败之后的图片,加载中的图片,该图片是否保存在缓存中,是否保存到文件中。缺少了DisplayImageOptions这个对象,图片是不会缓存起来的。

## 二.代码实现 ##

import java.io.File;
import com.example.imageloaderstudy.R;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
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 android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.LruCache;
import android.widget.ImageView;

public class MainActivity extends Activity{
    String url="http://g.hiphotos.baidu.com/image/pic/item/6c224f4a20a446230761b9b79c22720e0df3d7bf.jpg";
    ImageView image;
    File path;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.main);
        image=(ImageView) findViewById(R.id.image);
        if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
        {
            path=Environment.getExternalStorageDirectory();
        }
        File f=new File(path.getAbsoluteFile(),"ImageLoaderCache");

        ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this)
                .memoryCacheExtraOptions(480, 800) // maxwidth, max height,即保存的每个缓存文件的最大长宽   
                .memoryCache(new LruMemoryCache(3* 1024 * 1024))//程序内缓存
                .memoryCacheSize(3* 1024 * 1024)
                .discCacheSize(10*1024*1024)//缓存的文件大小
                .discCache(new UnlimitedDiskCache(f))//自定义缓存的文件路径
                .build();
        DisplayImageOptions options=new DisplayImageOptions.Builder()
                .cacheOnDisk(true)
                .cacheInMemory(true)
                .build();

        ImageLoader.getInstance().init(configuration);
        ImageLoader.getInstance().displayImage(url, image,options);
        super.onCreate(savedInstanceState);
    }
}


上面代码就是ImageLoader一般性用法,先实例化imageloaderconfiguration对象。然后通过imageloader.init(config),使imageloader设置配置信息,接着加载图片的时候,实例化DisplayImageOptions对象,调用包含DisplayImageOptions对象的加载方法,就能将图片缓存起来.


注意:要加入俩个权限:
uses-permission android:name=”android.permission.MOUNT_UNMOUNT_FILESYSTEMS”
uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”

有的时候需要把项目中的一些图片加到ImageLoader里面缓存起来这个时候只需要调用如下的方法,通过put或者save方法就可以将自己想要缓存的图片缓存起来.

@Override
public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) {
ImageLoader.getInstance().getDiscCache();//获取文件存储的cache对象
ImageLoader.getInstance().getMemoryCache();//获取应用中的cache对象  
}   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值