尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

在使用 Android Jetpack Compose的 App里创建 SurfaceView和Surface

在使用 Android Jetpack Compose的 App里创建 SurfaceView和Surface
📅 发布时间:2026/6/19 23:31:38

基本方法是使用AndroidView创建surfaceview,在surfaceHolder的callback里取得surface

@Composable fun SurfaceViewScreen() { val context = LocalContext.current // 用于保存 Surface 引用 var surfaceHolder: SurfaceHolder? by remember { mutableStateOf(null) } AndroidView( factory = { ctx -> SurfaceView(ctx).apply { // 设置全屏布局参数 layoutParams = ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT ) // 添加 SurfaceHolder 回调 holder.addCallback(object : SurfaceHolder.Callback { override fun surfaceCreated(holder: SurfaceHolder) { // Surface 创建时获取 Surface surfaceHolder = holder val surface = holder.surface if(surface?.isValid == true){ println("surface is valid") } // 在这里可以开始使用 Surface startDrawingOnSurface(surface) println("Surface created: $surface") } override fun surfaceChanged( holder: SurfaceHolder, format: Int, width: Int, height: Int ) { println("Surface changed: $width x $height") } override fun surfaceDestroyed(holder: SurfaceHolder) { // 清理资源 surfaceHolder = null println("Surface destroyed") } }) } }, modifier = Modifier.fillMaxSize() ) } // 在 Surface 上绘制的示例函数 private fun startDrawingOnSurface(surface: android.view.Surface) { // 在后台线程进行绘制 Thread { try { val canvas = surface.lockCanvas(null) try { // 绘制红色背景 canvas.drawColor(Color.RED) // 可以在这里进行更多绘制操作 // ... } finally { surface.unlockCanvasAndPost(canvas) } } catch (e: Exception) { e.printStackTrace() } }.start() }

相关新闻

  • 人像摄影(雪景 · 现代装篇 · 2) 提示词
  • 企业文化传播助手:内部通讯内容由TensorRT支持生成
  • 多代理系统安全防护:对抗恶意AI代理的策略

最新新闻

  • 美格信解读:从公式到听感,THD与THD+N的实战辨析
  • 从入门到精通:Catcher异常过滤器与参数排除高级用法终极指南
  • 解决Docker Machine文件共享慢问题:NFS替代默认挂载的完整方案
  • 淮南GEO服务商代理加盟选型靠谱推荐哪家?2026年淮南GEO优化代理加盟服务商选型指南与合作权益解析 - 子柔传媒
  • Madmom深度解析:Python音乐信息检索的高效方案
  • Xiaomusic深度解析:3大核心功能与进阶配置实战指南

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号