使用Glide遇到的Bug

2017-04-13  本文已影响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没有修复这个问题.

上一篇下一篇

猜你喜欢

热点阅读