因为需求 需要对图片做毛玻璃效果。


查询了很多,有好多是引用compile 'jp.wasabeef:glide-transformations:2.0.1'      而我不想引用好多包,毕竟已经有glide了。嗨哟啊换好麻烦的。

最后还是用的 BlurTransformation 这个

3.0的glide代码

/** * 毛玻璃效果 * Created by wjs on 2017/11/20. */public class BlurTransformation extends BitmapTransformation {    private RenderScript rs;    private int radius;    public BlurTransformation(Context context, int radius) {        super(context);        rs = RenderScript.create(context);        this.radius = radius;    }    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)    @Override    protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {        Bitmap blurredBitmap = toTransform.copy(Bitmap.Config.ARGB_8888, true);        // Allocate memory for Renderscript to work with        //分配用于渲染脚本的内存        Allocation input = Allocation.createFromBitmap(                rs,                blurredBitmap,                Allocation.MipmapControl.MIPMAP_FULL,                Allocation.USAGE_SHARED        );        Allocation output = Allocation.createTyped(rs, input.getType());        // Load up an instance of the specific script that we want to use.        //加载我们想要使用的特定脚本的实例        ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));        script.setInput(input);        // Set the blur radius        //设置模糊半径        script.setRadius(radius);        // Start the ScriptIntrinisicBlur        //启动ScriptIntrinisicBlur        script.forEach(output);        // Copy the output to the blurred bitmap        //将输出复制到模糊的位图        output.copyTo(blurredBitmap);        toTransform.recycle();        return blurredBitmap;    }    @Override    public String getId() {        return "blur";    }}

4.0的glide


/** * Created by wjs on 2017/11/20. */public class BlurTransformation extends BitmapTransformation {    private RenderScript rs;    private int radius;    public BlurTransformation(Context context,int radius ) {        super(context);        rs = RenderScript.create(context);        this.radius = radius;    }    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)    @Override    protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {        Bitmap blurredBitmap = toTransform.copy(Bitmap.Config.ARGB_8888, true);        // Allocate memory for Renderscript to work with        //分配用于渲染脚本的内存        Allocation input = Allocation.createFromBitmap(rs, blurredBitmap, Allocation.MipmapControl.MIPMAP_FULL, Allocation.USAGE_SHARED);        Allocation output = Allocation.createTyped(rs, input.getType());        // Load up an instance of the specific script that we want to use.        //加载我们想要使用的特定脚本的实例。        ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));        script.setInput(input);        // Set the blur radius        //设置模糊半径        script.setRadius(radius);        // Start the ScriptIntrinisicBlur        //启动ScriptIntrinisicBlur,        script.forEach(output);        // Copy the output to the blurred bitmap        //将输出复制到模糊的位图        output.copyTo(blurredBitmap);        return blurredBitmap;    }    @Override    public void updateDiskCacheKey(MessageDigest messageDigest) {        messageDigest.update("blur transformation".getBytes());    }}

使用

Glide        .with(MainActivity.this)        .load(http://image.chaokeli.cn/chocolate/android_20171102104519_0_169.jpg)        .transform(new BlurTransformation(MainActivity.this,20))        .into(iv2);

转载注明出处

安卓互助群:471761982




更多相关文章

  1. 探索Android(安卓)FrameWork底层开发
  2. Android的Multilib Build
  3. 初学Android,图形图像之使用drawBitmapMesh扭曲图像(三十二)
  4. Android(安卓)实现图片的圆角
  5. Auto.js逆向分析-提取脚本文件(附源码)
  6. 关于android相机开发中遇到的内存溢出的问题
  7. bitmap与canvas android
  8. 【Android】使用persist属性来调用脚本文件
  9. 一个用于导出android项目配置宏为单个独立xml文件的shell脚本

随机推荐

  1. RecyclerView指定布局管理器
  2. Android敏感词过滤工具类
  3. Android手势操作(二)
  4. Android_自定义底部动画弹出pupopwindow
  5. RadioButton单选按钮实现RadioGroup.OnCh
  6. Android读取SeekBar数值方法
  7. Android(安卓)get resource raw name
  8. ClassCastException: java.util.HashSet
  9. 蓝牙遥控器获取电量GATT
  10. 图片 缓存