电子说
基于像素单位,展示了像素单位的基本知识与像素转换API的使用。
像素转换(ArkTS)
本篇Codelab介绍像素单位的基本知识与像素单位转换API的使用。通过像素转换案例,向开发者讲解了如何使用像素单位设置组件的尺寸、字体的大小以及不同像素单位之间的转换方法。主要功能包括:
鸿蒙开发指导文档:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
完成本篇Codelab我们首先要完成开发环境的搭建,本示例以RK3568开发板为例,参照以下步骤进行:
本篇Codelab只对核心代码进行讲解,对于完整代码,我们会在gitee中提供。
├──entry/src/main/ets // 代码区
│ ├──common
│ │ ├──constants
│ │ │ └──Constants.ets // 常量类
│ │ └──utils
│ │ └──Logger.ets // 日志打印工具类
│ ├──entryability
│ │ └──EntryAbility.ts // 程序入口类
│ ├──pages
│ │ ├──ConversionPage.ets // 像素转换页面
│ │ ├──IndexPage.ets // 应用主页面
│ │ └──IntroductionPage.ets // 像素介绍页面
│ ├──view
│ │ ├──ConversionItemComponment.ets // 像素转换Item
│ │ └──IntroductionItemComponment.ets // 像素介绍Item
│ └──viewmodel
│ ├──ConversionItem.ets // 像素转换信息类
│ ├──ConversionViewModel.ets // 像素转换ViewModel
│ ├──IntroductionItem.ets // 像素介绍信息类
│ └──IntroductionViewModel.ets // 像素介绍ViewModel
└──entry/src/main/resources // 资源文件
`HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿`
在像素单位介绍页面,介绍了系统像素单位的概念,并在页面中为Text组件的宽度属性设置不同的像素单位,fp像素单位则设置为Text组件的字体大小。
// IntroductionPage.ets
// 设置Text组件的宽度为200px
Text('200px')
.textAlign(TextAlign.Center)
.backgroundColor($r('app.color.blue_background'))
.height($r('app.float.value_height'))
.width('200px')
...
// 设置Text组件的宽度为200vp
Text('200vp')
.textAlign(TextAlign.Center)
.backgroundColor($r('app.color.blue_background'))
.height($r('app.float.value_height'))
.width('200vp')
...
// 设置Text组件的宽度为200lpx
Text('200lpx')
.textAlign(TextAlign.Center)
.backgroundColor($r('app.color.blue_background'))
.height($r('app.float.value_height'))
.width('200lpx')
...
// 分别设置Text的字体大小为14fp, 24fp
Column() {
Text('这是一段为14fp的文字')
.fontSize('14fp')
...
Text('这是一段为24fp的文字')
.fontSize('24fp')
...
}
// ...
说明:
- 为组件设置具体的宽高时,可以不加“vp”(系统默认单位为vp)。
- 为文字设置字体大小时可以不加“fp”(系统默认为fp)。
在像素转换页面,通过使用像素转换API,实现不同像素单位之间的相互转换功能。
// ConversionPage.ets
// vp转换为px
Row()
.blueStyle()
.width(vp2px(60))
// px转换为vp
Row()
.blueStyle()
.width(px2vp(60))
// fp转换为px
Row()
.blueStyle()
.width(fp2px(60))
// px转换为fp
Row()
.blueStyle()
.width(px2fp(60))
// lpx转换为px
Row()
.blueStyle()
.width(lpx2px(60))
// px转换为lpx
Row()
.blueStyle()
.width(px2lpx(60))
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !