replugin 插件化中 使用Glide 找不到 R文件
2019-01-15 本文已影响15人
勤劳的蚂蚁
在使用replugin插件化项目重构 过程 ,使用glide 加载本地图片,发现 其找不到R 文件,而正常 ImageView 加载图片是没有问题的,glide 加载网络图片也是没有问题的,Glide 还能显示错误图片;
开始以为是没有找到 R文件 ,可以通过反射拿R 文件,后来发现不是这样的,可能Glide 加载机制 在插件化中有些问题;
采用一种折中方案,就是 将R 文件转化为 bite[] 流,再用glide 加载。
主要方法:
public byte[] Bitmap2Bytes(int bb) {
Bitmap bmp = BitmapFactory.decodeResource(getResources(), bb);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, baos);
return baos.toByteArray();
}
Glide.with(mContext)
.load(bytes)
.centerCrop()
// .thumbnail(0.1f) //缩略图为原来的十分之一
.override(Utils.px2dip(mContext,130),Utils.px2dip(mContext,130)) //设置大小
.placeholder(me.iwf.photopicker.R.drawable.__picker_ic_photo_black_48dp)
.error(me.iwf.photopicker.R.drawable.__picker_ic_broken_image_black_48dp)
.into(holder.ivPhoto);