HarmonyOS-UIAbitity-像素单位——【坚果派-红目香薰】

举报
红目香薰 发表于 2024/03/31 18:10:52 2024/03/31
【摘要】 ​摘要作者:红目香薰团队:坚果派 团队介绍:坚果派由坚果创建,团队拥有12个华为HDE以及若干其他领域的三十余位万粉博主运营。 目录摘要HarmonyOS-UIAbitity-像素单位像素单位转换边框单位HarmonyOS-UIAbitity-像素单位为开发者提供4种像素单位,框架采用vp为基准数据单位。名称描述px屏幕物理像素单位。vp屏幕密度相关像素,根据屏幕像素密度转换为屏幕物理像素,...

摘要

作者:红目香薰
团队:坚果派
团队介绍:坚果派由坚果创建,团队拥有12个华为HDE以及若干其他领域的三十余位万粉博主运营。 

目录

摘要

HarmonyOS-UIAbitity-像素单位

像素单位转换

边框单位


HarmonyOS-UIAbitity-像素单位

为开发者提供4种像素单位,框架采用vp为基准数据单位。

名称

描述

px

屏幕物理像素单位。

vp

屏幕密度相关像素,根据屏幕像素密度转换为屏幕物理像素,当数值不带单位时,默认单位vp。

fp

字体像素,与vp类似适用屏幕密度变化,随系统字体大小设置变化。

lpx

视窗逻辑像素单位,lpx单位为实际屏幕宽度与逻辑宽度(通过designWidth配置)的比值。如配置designWidth为720时,在实际宽度为1440物理像素的屏幕上,1lpx为2px大小。

像素单位转换

提供其他单位与px单位互相转换的方法。

接口

描述

vp2px(value : number) : number

将vp单位的数值转换为以px为单位的数值。

px2vp(value : number) : number

将px单位的数值转换为以vp为单位的数值。

fp2px(value : number) : number

将fp单位的数值转换为以px为单位的数值。

px2fp(value : number) : number

将px单位的数值转换为以fp为单位的数值。

lpx2px(value : number) : number

将lpx单位的数值转换为以px为单位的数值。

px2lpx(value : number) : number

将px单位的数值转换为以lpx为单位的数值。

编码:

@Entry@Component

struct Index {

build() {

Column() {

Flex({ wrap: FlexWrap.Wrap }) {

Column() {

Text("width(220)")

.width(220).height(40).backgroundColor(0xF9CF93)

.textAlign(TextAlign.Center).fontColor(Color.White).fontSize('12vp')

}.margin(5)

Column() {

Text("width('220px')")

.width('220px').height(40).backgroundColor(0xF9CF93)

.textAlign(TextAlign.Center).fontColor(Color.White)

}.margin(5)

Column() {

Text("width('220vp')")

.width('220vp').height(40).backgroundColor(0xF9CF93)

.textAlign(TextAlign.Center).fontColor(Color.White).fontSize('12vp')

}.margin(5)

Column() {

Text("width('220lpx') designWidth:720")

.width('220lpx').height(40).backgroundColor(0xF9CF93)

.textAlign(TextAlign.Center).fontColor(Color.White).fontSize('12vp')

}.margin(5)

Column() {

Text("width(vp2px(220) + 'px')")

.width(vp2px(220) + 'px').height(40).backgroundColor(0xF9CF93)

.textAlign(TextAlign.Center).fontColor(Color.White).fontSize('12vp')

}.margin(5)

Column() {

Text("fontSize('12fp')")

.width(220).height(40).backgroundColor(0xF9CF93)

.textAlign(TextAlign.Center).fontColor(Color.White).fontSize('12fp')

}.margin(5)

}.width('100%')

}

}

}

对应效果:

​编辑

边框单位

这里边框没有用具体的像素字符串,只给了具体的数值。

编辑

实现代码:

@Entry
@Component
struct Index {
  build() {
    Row() {
      Column() {
        Image($r('app.media.2'))
          .borderStyle(BorderStyle.Solid)
          .borderWidth(5)
          .width(200).height(400)
          .align(Alignment.Center)
      }.width('100%').height('100%')
    }
  }

这里可以看到对应的borderWidth函数中给的直接是数值,并没有任何参数。百分比表示的时候单独加了个百分号以及外部的单引号。 


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。