使用ImageLoader进行图片加载

图片加载在所有的android的app项目中灰常的常用的,下面我就介绍如何使用imageLoader进行图片记载。
(1)使用imageLoader进行图片加载(图片加载代码)
ImageLoader.getInstance().displayImage(url, imageView);
(2)必须要先到Application进行初始化(记着要到清单文件中进行注册)

public class MyApplication extends Application {
    /** SDCard路径*/
    public static final String SD_PATH = Environment
            .getExternalStorageDirectory().getAbsolutePath();
    /** 文件夹路径*/
    public static final String BASE_PATH = SD_PATH + "/listviewViewpager/";
    /** 缓存图片路径*/
    public static final String BASE_IMAGE_CACHE = BASE_PATH + "listviewViewpager/images/";

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        ImageLoaderConfig.initImageLoader(this, new File(BASE_IMAGE_CACHE));
    }
}

图片加载ImageLoaderConfig类

import java.io.File;
import com.example.imageloaderdemo.R;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
import android.content.Context;
import android.graphics.Bitmap;
public class ImageLoaderConfig {
    /**
     * 设置缓存
     */
    public static void initImageLoader(Context context, File cacheFile) {
        // 获取本地缓存的目录, 该目录在sd卡的根目
        ImageLoaderConfiguration.Builder builder = new ImageLoaderConfiguration.Builder(context);
        // 线程池加载数量
        builder.threadPoolSize(3);
        // 设定线程优先级
        builder.threadPriority(Thread.NORM_PRIORITY - 2);
        // 设定内存为弱缓存
        // builder.memoryCache(new WeakMemoryCache());
        // 设定内存图片缓存大小的限制,不设置默认为屏幕的宽,即保存的每个缓存文件的最大长宽
        builder.memoryCacheExtraOptions(480, 800);
        // 设置硬盘缓存100mb
        builder.discCacheSize(100 * 1024 * 1024);
        // builder.memoryCacheSize(1 * 1024 * 1024);
        builder.denyCacheImageMultipleSizesInMemory();
        // 设定缓存的路径
        builder.discCache(new UnlimitedDiscCache(cacheFile));
        // 设定网络连接超时timeout:10s 读取网络连接超时read timeout 60s
        builder.imageDownloader(new BaseImageDownloader(context, 10 * 1000, 60 * 1000));
        // 设置ImageLoader的配置参
        builder.defaultDisplayImageOptions(initDisplayOptions(true));

        // 初始化imageLoader
        ImageLoader.getInstance().init(builder.build());
    }
    /**
     * 配置ImageLoder
     */
    @SuppressWarnings("unused")
    private static DisplayImageOptions initDisplayOptions(boolean isShowDefault) {
        // 初始化ImageLoader
        @SuppressWarnings("deprecation")
        DisplayImageOptions options = new DisplayImageOptions.Builder().imageScaleType(ImageScaleType.EXACTLY)
                .showStubImage(R.drawable.icon_stub) // 设置图片下载期间显示的图片
                .showImageForEmptyUri(R.drawable.icon_empty) // 设置图片Uri为空或是错误的时候显示的图片
                .showImageOnFail(R.drawable.icon_error) // 设置图片加载或解码过程中发生错误显示的图片
                .cacheInMemory(true) // 设置下载的图片是否缓存在内存中
                .cacheOnDisc(true) // 设置下载的图片是否缓存在SD卡中
                .considerExifParams(true) // 设置图片下载前的延迟
                .delayBeforeLoading(100)// delayInMillis为你设置的延迟时间
                .displayer(new FadeInBitmapDisplayer(100))// 淡入
                .resetViewBeforeLoading(true)// 设置图片在下载前是否重置,复位
                .bitmapConfig(Bitmap.Config.RGB_565)
                // .displayer(new RoundedBitmapDisplayer(20)) // 设置成圆角图片
                .build(); // 创建配置过得DisplayImageOption对象
        return options;
    }
}

(3)一定要把jar包粘贴到lib目录下面(后面的代码demo里面有的哟)这样就可以实现通过imageLoader进行图片加载了。
这里写链接内容

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值