美文网首页
使用Glide遇到的Bug

使用Glide遇到的Bug

作者: 封印命运 | 来源:发表于2017-04-13 15:03 被阅读65次

    最近在使用Glide的过程中遇到了一个Bug:
    我在使用填充图片setPlaceHolder(int resID)的时候发现,如果加载Glide时调用了动态调整填充样式的方法setCenterCrop()或setFitCenter(),这两个方法会不起作用.
    观察Glide源码,发现setCenterCrop()与setFitCenter()起作用的原理是调用了transform()方法:

    public GenericRequestBuilder<ModelType, DataType, ResourceType, TranscodeType> transform(
                Transformation<ResourceType>... transformations) {
            isTransformationSet = true;
            if (transformations.length == 1) {
                transformation = transformations[0];
            } else {
                transformation = new MultiTransformation<ResourceType>(transformations);
            }
    
            return this;
        }
    

    而调用setPlaceHolder(int resID)时Builder的isTransformationSet会改变为false,导致图片变形失败.
    解决方法:在xml中设置ImageView的scaleType为centerCrop,可暂时解决,如果要根本解决问题,要修改Glide源码,目前Glide3.7.0没有修复这个问题.

    相关文章

      网友评论

          本文标题:使用Glide遇到的Bug

          本文链接:https://www.haomeiwen.com/subject/dsmbattx.html