项目有一个需求,要求我们将应用的头像换成ImageView圆形控件,列表的大图换成圆角方形图片控件,因此我们想到的是自定义圆形图片控件,或者圆角方形图片控件,常见的ImageView自定义库 circleimageview 就是自定义圆形控件,我们想Glide有没有类似开源库,能够自动绘制各种不同形状的ImageView,这就是我们要讲的这一节glide-transformations图片转换框架库。
glide-transformations项目地址:
https://github.com/wasabeef/glide-transformations
添加build.gradle依赖:
compile :"jp.wasabeef:glide-transformations:2.0.0"
在讲glide-transformations Api之前,我们首先了解下Glide如何自定义渲染图片原理。
我们刚开始使用Glide API时都会调用centerCrop()和fitCenter()等方法来设置图片变换操作,点击查看centerCrop()方法的实现:
@SuppressWarnings("unchecked")
public DrawableRequestBuilder<ModelType> centerCrop() {
return transform(glide.getDrawableCenterCrop());
}
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;
}