gpt4 book ai didi

android - Jetpack Compose 截取可组合功能的截图?

转载 作者:行者123 更新时间:2023-12-03 14:52:50 26 4
gpt4 key购买 nike

我想在 Jetpack Compose 上截取特定可组合功能的屏幕截图。我怎样才能做到这一点?请任何人帮助我。我想截取可组合功能的屏幕截图并与其他应用程序共享。
我的功能示例:

@Composable
fun PhotoCard() {
Stack() {
Image(imageResource(id = R.drawable.background))
Text(text = "Example")
}
}
如何截取此功能的屏幕截图?

最佳答案

@Commonsware评论中提到,并假设这是不是 关于截图测试:
根据official docs您可以使用 LocalView.current 访问可组合函数的 View 版本,然后将该 View 导出到像这样的位图文件(以下代码位于可组合函数中):

    val view = LocalView.current
val context = LocalContext.current

val handler = Handler(Looper.getMainLooper())
handler.postDelayed(Runnable {
val bmp = Bitmap.createBitmap(view.width, view.height,
Bitmap.Config.ARGB_8888).applyCanvas {
view.draw(this)
}
bmp.let {
File(context.filesDir, "screenshot.png")
.writeBitmap(bmp, Bitmap.CompressFormat.PNG, 85)
}
}, 1000)
writeBitmap方法是 File 类的简单扩展函数。例子:
private fun File.writeBitmap(bitmap: Bitmap, format: Bitmap.CompressFormat, quality: Int) {
outputStream().use { out ->
bitmap.compress(format, quality, out)
out.flush()
}
}

关于android - Jetpack Compose 截取可组合功能的截图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63861095/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com