我正在尝试实现像这篇文章中突出显示的模糊效果:

我正在使用 Jetpack Compose:
@Composable
fun MainApp() {
val linearGradientBrush = Brush.linearGradient(
colors = listOf(
Color(0xFF5995EE),
Color(0xFFB226E1),
Color(0xFFE28548)
),
start = Offset(Float.POSITIVE_INFINITY, 0f),
end = Offset(0f, Float.POSITIVE_INFINITY),
)
val transparentGradientBrush = Brush.linearGradient(
colors = listOf(
Color(0x66FFFFFF),
Color(0x1AFFFFFF)
)
)
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Box() {
Card(
modifier = Modifier
.size(150.dp)
// .blur(10.dp, edgeTreatment = BlurredEdgeTreatment.Unbounded)
.clip(shape = CircleShape)
.background(linearGradientBrush),
backgroundColor = Color.Transparent,
elevation = 0.dp,
) {
}
Card(
modifier …Run Code Online (Sandbox Code Playgroud) android android-canvas android-blur-effect android-jetpack-compose
当我启动我的应用程序时,它会启动一个Activity应该有透明标题,并且背景中当前显示的任何内容都应该模糊.
我能够获得透明度.但我无法弄清楚如何模糊背景.例如,如果我从主屏幕启动应用程序,那么主屏幕应该是可见的但模糊了.
我有一个想法是使用Framebuffer来获取当前显示的数据,但是如何将其转换为位图,我可以使用它来绘制图像而不保存图像并直接使用数据.
我也知道我们可以通过按电源和音量按钮来截取屏幕截图.有没有人知道android中的代码在哪里?我的应用程序将具有系统访问权
android android-activity android-blur-effect android-renderscript
android ×2