Android新版高斯模糊(毛玻璃)官方实现,Kotlin
从Android 12开始,Android官方API支持高斯模糊(毛玻璃)效果。关键是通过RenderEffect实现。
如果过去旧的的依赖 RenderScript 实现的高斯模糊,可以根据这篇官方文档迁移到性能更好的实现方式:
从 Android 12 开始,RenderScript API 已被废弃。设备和组件制造商已停止提供硬件加速支持,预计将在未来的版本中完全取消对 RenderScript 的支持。
C/C++ 性能可能足以满足许多用例的需要,如果您仅将 RenderScript 用于内建函数,可使用 RenderScript 内建函数替换工具包来替代。后者更易于使用,并且有可能将性能提高 2 倍!
替换的包:
GitHub - android/renderscript-intrinsics-replacement-toolkit
官方API对于一个View实现高斯模糊效果很简单:
Kotlin
val imageView = findViewById<ImageView>(R.id.image)
val blurRenderEffect = RenderEffect.createBlurEffect(10f, 10f, Shader.TileMode.MIRROR)
imageView.setRenderEffect(blurRenderEffect)