当前位置: 首页 > 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进行设置。

相关文章:

  • 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++ 跨平台模块时的内存与生命周期管理
  • 餐饮店直播顾客用餐,律师:公共场所并非无隐私,需对方同意
  • 报告显示2024年全球军费开支增幅达冷战后最大
  • 第1现场|无军用物资!伊朗港口爆炸已遇难40人伤1200人
  • 美加征“对等关税”后,调研显示近半外贸企业将减少对美业务
  • 兵韬志略|美菲“肩并肩”军演超越传统范畴,凸显防务合作重大转型
  • “梅花奖”快闪走入上海张园,朱洁静在石库门前起舞