鴻蒙的屏幕適配我們采用了跟安卓一樣的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ā)布平臺,僅提供信息存儲服務。