Android使用glide实现毛玻璃效果
来源:互联网 发布:男朋友生日礼物 知乎 编辑:程序博客网 时间:2024/04/29 19:54
因为需求 需要对图片做毛玻璃效果。
查询了很多,有好多是引用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 0
- Android使用glide实现毛玻璃效果
- Android 毛玻璃效果实现(Glide)
- 使用Glide快速实现毛玻璃效果
- 使用Glide实现毛玻璃的效果
- Android毛玻璃效果实现
- Android实现毛玻璃效果
- Android毛玻璃效果实现
- 整理Glide方法使用含义(毛玻璃效果,实现圆角等)
- android实现的毛玻璃效果
- android快速实现毛玻璃效果
- Android 毛玻璃效果的实现
- android快速实现毛玻璃效果
- Android毛玻璃效果简单实现
- Android快速实现毛玻璃效果
- Android Fresco实现图片毛玻璃效果
- Android快速毛玻璃虚化效果实现
- Android模糊处理简单实现毛玻璃效果
- android 毛玻璃模糊效果背景实现
- 25个JAVA 机器学习工具包
- 回答
- 分布式微服务为什么很难?
- redis服务相关命令
- vim的使用技巧
- Android使用glide实现毛玻璃效果
- 执行java可执行文件
- java将富文本字符串(HTML)转为文本(Text)
- JSONObject中put/element/accumulate区别
- iOS 开发者账号有什么区别?
- 欢迎使用CSDN-markdown编辑器
- JavaScript的Document属性和方法
- listView的万能适配器
- Unity关于屏幕适配留黑边的做法