如何在Jetpack Compose中模糊背景或创建模糊叠加?没有任何文档或资源涉及此主题。简单地说:我希望在Jetpack Compose中以本机方式实现类似this的功能
w8f9ii691#
这是a feature that has been requested(仅在适用于android 12及更高版本的Compose 1.1.0-alpha03中实现),您可能希望星星。我们的想法是创建一个模糊修改器,如下所示:
1.1.0-alpha03
Modifier.blur(radius = 16.dp)
kq0g1dla2#
在Jetpack编写:1.1.0-alpha 03中,您可以用途:
Modifier.blur(30.dp)
但仅在Android 12及更高版本上受支持。在较旧的Android版本上使用此修饰符的尝试将被忽略。
参考:Modifier.blur
ifmq2ha23#
对于API 31之前的版本,您仍然可以使用RenderScript(已弃用)或RenderScript Intrinsics Replacement Toolkit。对于第一种方法:
val bitmap = BitmapFactory.decodeResource( LocalContext.current.resources, R.drawable.your_image ) val rs = RenderScript.create(LocalContext.current) val bitmapAlloc = Allocation.createFromBitmap(rs, bitmap) ScriptIntrinsicBlur.create(rs, bitmapAlloc.element).apply { setRadius(BLUR_RADIUS) setInput(bitmapAlloc) forEach(bitmapAlloc) } bitmapAlloc.copyTo(bitmap) rs.destroy()
第二步,您必须将 renderscript-toolkit 模块添加到项目中(请查看此处),然后用途:
val bitmap = BitmapFactory.decodeResource( LocalContext.current.resources, R.drawable.your_image ).let { Toolkit.blur(it, BLUR_RADIUS) }
最后你可以这样显示模糊的位图:
Image( bitmap = bitmap.asImageBitmap(), "some description" )
rslzwgfq4#
我找到了这个Jetpack Compose模糊过程库,它支持所有Android版本,希望它对你有用。Jetpack Compose Cloudy - blur process library
4条答案
按热度按时间w8f9ii691#
这是a feature that has been requested(仅在适用于android 12及更高版本的Compose
1.1.0-alpha03
中实现),您可能希望星星。我们的想法是创建一个模糊修改器,如下所示:
kq0g1dla2#
在Jetpack编写:1.1.0-alpha 03中,您可以用途:
但仅在Android 12及更高版本上受支持。在较旧的Android版本上使用此修饰符的尝试将被忽略。
参考:Modifier.blur
ifmq2ha23#
对于API 31之前的版本,您仍然可以使用RenderScript(已弃用)或RenderScript Intrinsics Replacement Toolkit。对于第一种方法:
第二步,您必须将 renderscript-toolkit 模块添加到项目中(请查看此处),然后用途:
最后你可以这样显示模糊的位图:
rslzwgfq4#
我找到了这个Jetpack Compose模糊过程库,它支持所有Android版本,希望它对你有用。
Jetpack Compose Cloudy - blur process library