Android RenderScript+ScriptIntrinsicBlur 或 RenderEffect(android 12) 实现 图片模糊效果
Posted 匆忙拥挤repeat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android RenderScript+ScriptIntrinsicBlur 或 RenderEffect(android 12) 实现 图片模糊效果相关的知识,希望对你有一定的参考价值。
// 图片模糊函数
private fun blurByRenderScript(bitmap: Bitmap, radius: Int, view: ImageView)
val rs = RenderScript.create(context)
val allocation = Allocation.createFromBitmap(rs, bitmap)
val blur = ScriptIntrinsicBlur.create(rs, allocation.element)
blur.setInput(allocation)
blur.setRadius(radius.toFloat())
blur.forEach(allocation)
allocation.copyTo(bitmap)
view.setImageBitmap(bitmap)
rs.destroy()
allocation.destroy()
mBitmap?.let blurByRenderScript(it, 20, mViewBind.ivBlur)
android 3.0(api 11)以后支持
RenderScript
, 4.2(api 17) 支持ScriptIntrinsicBlur
。
android 12(api 31) 建议 对RenderScript
进行迁移。 点进进入 迁移文档
从文档知,对于图片模糊,可使用 android 12 增加的RenderEffect
类 进行处理。
RenderEffect
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)
val effect = RenderEffect.createBlurEffect(20f, 20f, RenderEffect.createBitmapEffect(bitmap), Shader.TileMode.DECAL)
imageView.setRenderEffect(effect)
return
RenderEffect
还可用于RenderNode
+RecordingCanvas
点击进入 RenderNode 文档
以上是关于Android RenderScript+ScriptIntrinsicBlur 或 RenderEffect(android 12) 实现 图片模糊效果的主要内容,如果未能解决你的问题,请参考以下文章
Android RenderScript+ScriptIntrinsicBlur 或 RenderEffect(android 12) 实现 图片模糊效果
Android RenderScript+ScriptIntrinsicBlur 或 RenderEffect(android 12) 实现 图片模糊效果
Android、Renderscript、ScriptIntrinsicBlur、导入 libRSSuport.so 和 librsjni.so