当前位置: 首页 > news >正文

Jetpack Compose 基础组件学习2.1:Surface

前言:
根据jetPack Compose 博物馆中的文档介绍,了解Surface组件的学习,但是更新版本之后有一些和当前版本对不上,对自己理解的学习记录一下。

Surface
Surface是平面的意思,一般是作为底层页面背景或者自定义背景实现时候进行使用,将很多的组件摆放在这个平面中,可以通过Surface自定义平面的边框,圆角,阴影和颜色等。

fun Surface(modifier: Modifier = Modifier,shape: Shape = RectangleShape,color: Color = MaterialTheme.colorScheme.surface,contentColor: Color = contentColorFor(color),tonalElevation: Dp = 0.dp,shadowElevation: Dp = 0.dp,border: BorderStroke? = null,content: @Composable () -> Unit
)

shape:可以通过RoundedCornerShape设置圆角大小或者通过MaterialTheme.shapes选择封装好的形状,例如

shape = MaterialTheme.shapes.small
//或
shape = RoundedCornerShape(0.dp)

color表示是surface自身的颜色,contentColor则表示content内容中的默认颜色
tonalElevation:控制阴影的深浅
shadowElevation:控制阴影的大小
border设置边框大小和颜色,例如

border = BorderStroke(1.dp, color = colorResource(R.color.agreen_red))

Icon
Icon的使用,可以加载位图和矢量图,分别有三种方式进行加载
ImageVector:矢量图对象,可以显示 SVG 格式的图标
ImageBitmap:位图对象,可以显示 JPG,PNG 等格式的图标
Painter:代表一个自定义画笔,可以使用画笔在 Canvas 上直接绘制图标 我们除了直接传入具体类型的实例,也可以通过 res/ 下的图片资源来设置图标:
如下所示: 详细信息查看

Icon(imageVector = ImageVector.vectorResource(id = R.drawable.ic_svg), contentDescription = "矢量图资源")Icon(bitmap = ImageBitmap.imageResource(id = R.drawable.ic_png), contentDescription = "图片资源")Icon(painter = painterResource(id = R.drawable.ic_both), contentDescription = "任意类型资源")

使用icon的时候需要注意是,Icon中的tint属性是默认的,Compose 的 Icon 组件默认会应用 LocalContentColor,如果未明确指定 tint 参数,可能会覆盖原有颜色。对tint属性进行设置,tint = Color.Unspecified // 禁用着色,将tint进行设置。

http://www.dtcms.com/a/155900.html

相关文章:

  • VuePress可以做什么?
  • Centos 7 ssh连接速度慢(耗时秒+)
  • 视频噪点多,如何去除画面噪点?
  • Kafka 架构设计和组件介绍
  • Golang | 位运算
  • 复杂地形越野机器人导航新突破!VERTIFORMER:数据高效多任务Transformer助力越野机器人移动导航
  • GitHub Copilot (Gen-AI) 很有用,但不是很好
  • 【Python】保持Selenium稳定爬取的方法(防检测策略)
  • 点云从入门到精通技术详解100篇-基于二次误差和高斯混合模型的点云配准算法
  • Java学习手册:时间戳、时区等相关概念
  • 项目笔记2:post请求是什么,还有什么请求
  • 应力腐蚀环功能及指标
  • 【AI平台】n8n入门2:第一个工作流,调用本地大模型
  • 【金仓数据库征文】_AI 赋能数据库运维:金仓KES的智能化未来
  • 虚拟滚动;懒加载;高并发组件
  • Java与Kotlin在Android开发中的全面对比分析
  • Python Cookbook-6.8 避免属性读写的冗余代码
  • TCP粘包拆包全攻略:Netty实战解决高并发通信难题
  • AKM旭化成微电子全新推出能量收集IC“AP4413系列”
  • iOS/Android 使用 C++ 跨平台模块时的内存与生命周期管理
  • kvm网卡发现的采集信息脚本COLT_CMDB_KVM_NETDISC.sh
  • ViewPager FragmentPagerAdapter在系统杀死应用后重建时UI不刷新的问题
  • 河北省大数据应用创新大赛样题
  • 大模型——快速部署和使用 Deep Research Web UI
  • SOLID 原则在单片机环境下的 C 语言实现示例,结合嵌入式开发常见场景进行详细说明
  • [吾爱出品] 【键鼠自动化工具】支持识别窗口、识图、发送文本、按键组合等
  • 基于AI应用创业IDEA:使用百度搜索开放平台的MCP广场智能推荐MCPServices服务
  • java使用CMU sphinx语音识别
  • Java代理讲解
  • 多层级的对象如何修改、或json格式