Glide 占位符矢量可绘制资源未找到异常
Glide placeholder vector drawable resource not found exception
最近我想在我的工作中添加Vector Drawable
。我正在使用 glide 来设置我的可绘制对象。这是我的代码:
Glide
.with(mContext)
.load(resDrawable)
.placeholder(placeHolderResDrawable)
.centerCrop()
.bitmapTransform(new CropCircleTransformation(MyLruBitmapPool.getInstance()))
.into(imgRoundedView);
这里我把vector drawable
放到了resDrawable
和placeHolderResDrawable
。它在 Lolipop
设备上运行良好。但是当我在 less than lolipop
中测试它时,它崩溃了。当试图将 drawable
放入 placeholder
时,它给出了 Resources$NotFoundException
.
这是崩溃报告:
android.content.res.Resources$NotFoundException: File res/drawable/default_round_profile.xml from drawable resource ID #0x7f02013d
at android.content.res.Resources.loadDrawable(Resources.java:3451)
at android.content.res.Resources.getDrawable(Resources.java:1894)
at com.bumptech.glide.request.GenericRequest.getPlaceholderDrawable(GenericRequest.java:395)
at com.bumptech.glide.request.GenericRequest.begin(GenericRequest.java:265)
at com.bumptech.glide.manager.RequestTracker.runRequest(RequestTracker.java:36)
at com.bumptech.glide.GenericRequestBuilder.into(GenericRequestBuilder.java:616)
at com.bumptech.glide.GenericRequestBuilder.into(GenericRequestBuilder.java:652)
at com.bumptech.glide.DrawableRequestBuilder.into(DrawableRequestBuilder.java:436)
尝试使用 ContextCompat
获取可绘制对象并将其设置为占位符:
ContextCompat.getDrawable(mContext, placeHolderResDrawable);
所以会是:
Glide.with(mContext)
.load(resDrawable)
.placeholder(ContextCompat.getDrawable(mContext, placeHolderResDrawable))
.centerCrop()
.bitmapTransform(new CropCircleTransformation(MyLruBitmapPool.getInstance()))
.into(imgRoundedView);
Glide v4 更新:
Glide.with(mContext)
.load(resDrawable)
.apply(new RequestOptions()
.placeholder(ContextCompat.getDrawable(mContext, placeHolderResDrawable))
.centerCrop()
.transform(new CropCircleTransformation(MyLruBitmapPool.getInstance())))
.into(imgRoundedView);
最近我想在我的工作中添加Vector Drawable
。我正在使用 glide 来设置我的可绘制对象。这是我的代码:
Glide
.with(mContext)
.load(resDrawable)
.placeholder(placeHolderResDrawable)
.centerCrop()
.bitmapTransform(new CropCircleTransformation(MyLruBitmapPool.getInstance()))
.into(imgRoundedView);
这里我把vector drawable
放到了resDrawable
和placeHolderResDrawable
。它在 Lolipop
设备上运行良好。但是当我在 less than lolipop
中测试它时,它崩溃了。当试图将 drawable
放入 placeholder
时,它给出了 Resources$NotFoundException
.
这是崩溃报告:
android.content.res.Resources$NotFoundException: File res/drawable/default_round_profile.xml from drawable resource ID #0x7f02013d at android.content.res.Resources.loadDrawable(Resources.java:3451) at android.content.res.Resources.getDrawable(Resources.java:1894) at com.bumptech.glide.request.GenericRequest.getPlaceholderDrawable(GenericRequest.java:395) at com.bumptech.glide.request.GenericRequest.begin(GenericRequest.java:265) at com.bumptech.glide.manager.RequestTracker.runRequest(RequestTracker.java:36) at com.bumptech.glide.GenericRequestBuilder.into(GenericRequestBuilder.java:616) at com.bumptech.glide.GenericRequestBuilder.into(GenericRequestBuilder.java:652) at com.bumptech.glide.DrawableRequestBuilder.into(DrawableRequestBuilder.java:436)
尝试使用 ContextCompat
获取可绘制对象并将其设置为占位符:
ContextCompat.getDrawable(mContext, placeHolderResDrawable);
所以会是:
Glide.with(mContext)
.load(resDrawable)
.placeholder(ContextCompat.getDrawable(mContext, placeHolderResDrawable))
.centerCrop()
.bitmapTransform(new CropCircleTransformation(MyLruBitmapPool.getInstance()))
.into(imgRoundedView);
Glide v4 更新:
Glide.with(mContext)
.load(resDrawable)
.apply(new RequestOptions()
.placeholder(ContextCompat.getDrawable(mContext, placeHolderResDrawable))
.centerCrop()
.transform(new CropCircleTransformation(MyLruBitmapPool.getInstance())))
.into(imgRoundedView);