HarmonyOS 怎么让系统设置中的显示大小在app不生效?

怎么让设置中的显示大小在app不生效

正常给view设置高40,获取的尺寸就是40vp。当把系统显示大小调整后,设置的是高40,获取到的尺寸可能就是39.999vp,导致固定高度判断代码失效。为了防止这类问题,需要让系统设置的显示大小在我们app内不生效

阅读 539
1 个回答

以fp、vp为单位设置的大小会随系统大小改变,默认情况下,1fp = 1vp,在设置中调整大小时,会在vp的基础上乘以缩放系数。将大小单位调整为px就可以不受系统影响,可以通过fp2px、vp2px进行转换。

具体参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-pixel-units-V5

@Entry
@Component
struct Demo {
  build() {
    Column() {
      Column() {
        Text('字体大小').fontSize("35px")
        Image($r('app.media.icon')).width("150px")
      }
      Divider().strokeWidth(8).color('#F1F3F5').padding(10)
      Column() {
        Text('fp单位的字体').fontSize(px2fp(35))
        Image($r('app.media.icon')).width(px2fp(150))
      }
      Divider().strokeWidth(8).color('#F1F3F5').padding(10)
      Column() {
        Text('vp单位的字体').fontSize(px2vp(35))
        Image($r('app.media.icon')).width(px2vp(150))
      }
    }
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进