glide可以实现圆角和高斯模糊,非常好用;实现为
MultiTransformation multi = new MultiTransformation( new BlurTransformation(55), new RoundedCornersTransformation(15, 0, RoundedCornersTransformation.CornerType.ALL));
Glide.with(getContext()).load(Url) .apply(RequestOptions.bitmapTransform(multi)) .into(view);
但是很多时候图片需要
android:scaleType="centerCrop" 那么圆角就失效了, 不用的话图片又无法充满。 解决思路:将圆角和高斯模糊分开, 自己的图片只实现圆角,让一张纯色图片来实现圆角和高斯模糊来盖在自己图片上, 模糊度调好就可以实现想要的功能。 我的方法是纯色白色图片或者写一个纯色白色shape(如下)来覆盖,另外覆盖的图片要加上android:scaleType="fitXY" 反正是纯色的有没有拉伸都没关系
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/white"/> <corners android:radius="5dp"/> </shape>
让覆盖的图片来实现(圆角+模糊)
MultiTransformation multi = new MultiTransformation( new BlurTransformation(55), new RoundedCornersTransformation(15, 0, RoundedCornersTransformation.CornerType.ALL));
Glide.with(getContext()).load(Url) .apply(RequestOptions.bitmapTransform(multi)) .into(view);
自己的图片只实现(圆角)
Glide.with(getContext()).load(Url) .apply(PublicUtils.setOptions(getContext(),5)) .into(view);
两个Imageview写在一个相对布局中,覆盖的图片一定要在上面。