鴻蒙學習筆記二十:屏幕適配

鴻蒙的屏幕適配我們采用了跟安卓一樣的dimen方案,即將屏幕寬度分成375份,每份是一個dimen,具體公式如下:
dimen_1 = 屏幕寬度 / 屏幕密度 / 375
代碼如下:
import display from '@ohos.display'


export class DimensStyle {
  private dimen_1: number = 0

  dimen(i: number): number {
    return Number((i * this.dimen_1).toFixed(2))
  }

  constructor() {
    let dip = 360
    if (display.getDefaultDisplaySync() && display.getDefaultDisplaySync().width && display.getDefaultDisplaySync().densityPixels) {
      dip = display.getDefaultDisplaySync().width / display.getDefaultDisplaySync().densityPixels
    }

    let dimen_1 = 1 * (dip / 375)
    this.dimen_1 = dimen_1
  }
}
用法如下:
Image('')
          .width(Dimens.dimen(15))
          .height(Dimens.dimen(3))
注意點:
1:需要在 DimensStyle 所在模塊的 Index.ets 文件中進行聲明,否則不能全局引用,具體聲明代碼如下:
import { DimensStyle } from "./src/main/ets/styles/DimensStyle"

const Dimens = new DimensStyle()

export {
  Dimens
}
2:這種方法不需要進行額外配置,也不用生成不同分辨率下的dimen文件,使用時系統(tǒng)會自動將自定義的dimen值進行轉(zhuǎn)換
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關閱讀更多精彩內(nèi)容

  • 前言 上篇文章介紹了在屏幕適配上遇到的問題,采用px或者dp都會與設計稿存在一定的偏差,也詳細的介紹了dp和dpi...
    static_sadhu閱讀 1,034評論 0 1
  • 更新:由于該適配方案越來越多人使用,也有很多人遇到不太理解的問題。所以為了大家更好的使用,我將文章很多內(nèi)容更新了,...
    KingWorld閱讀 8,592評論 4 19
  • 更新:由于該適配方案越來越多人使用,也有很多人遇到不太理解的問題。所以為了大家更好的使用,我將文章很多內(nèi)容更新了,...
    代碼小王子閱讀 1,387評論 0 2
  • 更新:由于該適配方案越來越多人使用,也有很多人遇到不太理解的問題。所以為了大家更好的使用,我將文章很多內(nèi)容更新了,...
    wildma閱讀 232,733評論 355 1,139
  • 此文章轉(zhuǎn)自:http://www.itdecent.cn/p/1302ad5a4b04 學習記錄使用。 前言 網(wǎng)...
    飛魚先生閱讀 555評論 0 0

友情鏈接更多精彩內(nèi)容