首页 文章

Glide占位符向量可绘制资源未找到异常

提问于
浏览
6

最近我试图在我的工作中添加 Vector Drawable . 我正在使用滑行设置我的drawables . 这是我的代码:

Glide
                .with(mContext)
                .load(resDrawable)
                .placeholder(placeHolderResDrawable)
                .centerCrop()
                .bitmapTransform(new CropCircleTransformation(MyLruBitmapPool.getInstance()))
                .into(imgRoundedView);

在这里,我把 vector drawable 放到 resDrawableplaceHolderResDrawable . 它在 Lolipop 设备中运行良好 . 但是当我在_2385926中测试它时,它比它崩溃了 . 当试图将 drawable 放在 placeholder 时,它给了 Resources$NotFoundException .

这是崩溃报告:

android.content.res.Resources $ NotFoundException:来自android.content.res.Resources的android.content.res.Resources.loadDrawable(Resources.java:3451)的可绘制资源ID#0x7f02013d的文件res / drawable / default_round_profile.xml .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 . bump.com.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)在com.bumptech.glide.DrawableRequestBuilder.into(DrawableRequestBuilder.java:436)

1 回答

  • 11

    尝试使用 ContextCompat 获取drawable并将其设置为占位符:

    ContextCompat.getDrawable(mContext, placeHolderResDrawable);
    

    所以它会是:

    Glide.with(mContext)
         .load(resDrawable)
         .placeholder(ContextCompat.getDrawable(mContext, placeHolderResDrawable))
         .centerCrop()
         .bitmapTransform(new CropCircleTransformation(MyLruBitmapPool.getInstance()))
         .into(imgRoundedView);
    

    Update for Glide v4:

    Glide.with(mContext)
         .load(resDrawable)
         .apply(new RequestOptions()
             .placeholder(ContextCompat.getDrawable(mContext, placeHolderResDrawable))
             .centerCrop()
             .transform(new CropCircleTransformation(MyLruBitmapPool.getInstance())))
         .into(imgRoundedView);
    

相关问题