![](/img/trans.png)
[英]Checkbox Composable Won't Disable Animation - Android Jetpack Compose
[英]Android Jetpack Compose (Composable) Disable Hardware Acceleration for particular composable
我有一个可组合的,即使用 NativeCanvas 和 BlurMaskFilter 来应用一些自定义模糊效果。 这适用于 API > 23 的设备,问题是由旧设备的硬件加速引起的。
在这里,您可以看到模糊在 API 30(左)上起作用,而在 API 22(右)上则没有那么多。
我知道我可以使用android:hardwareAccelerated="false"
手动为清单文件中的整个应用程序或活动禁用它。
对于视图,我们可以使用view.setLayerType(View.LAYER_TYPE_SOFTWARE, null)
为特定视图而不是整个活动禁用它
有没有办法我们可以禁用特定可组合而不是整个应用程序/活动的硬件加速?
使用互操作性 API ,您可以在 Composable 中嵌入带有所需配置的ComposeView
:
@Composable
fun SoftwareLayerComposable(
modifier: Modifier = Modifier,
content: @Composable () -> Unit,
) {
AndroidView(
factory = { context ->
ComposeView(context).apply {
setLayerType(View.LAYER_TYPE_SOFTWARE, null)
}
},
update = { composeView ->
composeView.setContent(content)
},
modifier = modifier,
)
}
用法:
SoftwareLayerComposable(Modifier) {
// your view
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.