关于ImageLoader must be init with configuration before using问题解决

在项目中依赖了com.lqr.imagepicker:library:1.0.0这个库,这个库是模仿微信选择的库,我在很多项目都使用了,需要的朋友可以看这边文章:

http://www.opendigg.com/p/lqrimagepicker,里面的使用还是写的挺详细,不过我还是在这里也说一下并且引出问题。

在引入该库之后,需要在自己的Application类中添加:

/**
     * 初始化仿微信控件ImagePicker
     */
    private void initImagePicker() {
        ImagePicker imagePicker = ImagePicker.getInstance();
        imagePicker.setImageLoader(new MyImageLoader());   //设置图片加载器
        imagePicker.setShowCamera(true);  //显示拍照按钮
        imagePicker.setCrop(true);        //允许裁剪(单选才有效)
        imagePicker.setSaveRectangle(true); //是否按矩形区域保存
        imagePicker.setSelectLimit(9);    //选中数量限制
        imagePicker.setStyle(CropImageView.Style.RECTANGLE);  //裁剪框的形状
        imagePicker.setFocusWidth(800);   //裁剪框的宽度。单位像素(圆形自动取宽高最小值)
        imagePicker.setFocusHeight(800);  //裁剪框的高度。单位像素(圆形自动取宽高最小值)
        imagePicker.setOutPutX(1000);//保存文件的宽度。单位像素
        imagePicker.setOutPutY(1000);//保存文件的高度。单位像素
    }
之后再在Application类中的onCreate方法中引用initImagePicker()方法;

这个时候有人会问,MyImageloader在哪儿,别急,以下是MyImageLoader的代码:

public class MyImageLoader implements ImageLoader {

    @Override
    public void displayImage(Activity activity, String path, ImageView imageView, int width, int height) {
        ImageSize size = new ImageSize(width, height);
        com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage(Uri.parse("file://"+path).toString(), imageView, size);
    }

    @Override
    public void clearMemoryCache() {
    }
}
如何打开图片选择界面就请参考原文吧:http://www.opendigg.com/p/lqrimagepicker

好了,正式引入问题,问题就是出现在MyImageLoader类中,我和原文中的ImageLoader的做法也是一样的,一开始貌似没有问题,但昨天却收到了致命的反馈:应用程序选择图片发送图片奔溃了。纳尼,什么情况,我代码没问题啊,什么错误啊;立马查找错误日志,发现了这一行错误:

ImageLoader must be init with configuration before using,错误行显示在

com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage(Uri.parse("file://"+path).toString(), imageView, size);

这就尴尬了,我的ImageLoader使用应该没问题啊,怎么跟它有关系,不过看错误,大概的字面意思就是在使用ImageLoader之前,需要先对它进行初始化设置;还是一脸懵逼,这个ImageLoader应该就是com.nostra13.universalimageloader.core.ImageLoader这个类了吧,好吧,的确,我没有将它初始化,进入这个类当中找到了init方法,了解init方法当中的参数,好了,在这行代码之前加上:

com.nostra13.universalimageloader.core.ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(MyApplication.getmContext()));
编译、运行,之后问题完美解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TenTenXu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值