鴻蒙的屏幕適配我們采用了跟安卓一樣的dimen方案放钦,即將屏幕寬度分成375份,每份是一個(gè)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))
注意點(diǎn):
1:需要在 DimensStyle 所在模塊的 Index.ets 文件中進(jìn)行聲明飘言,否則不能全局引用峦睡,具體聲明代碼如下:
import { DimensStyle } from "./src/main/ets/styles/DimensStyle"
const Dimens = new DimensStyle()
export {
Dimens
}
2:這種方法不需要進(jìn)行額外配置韧骗,也不用生成不同分辨率下的dimen文件嘉抒,使用時(shí)系統(tǒng)會(huì)自動(dòng)將自定義的dimen值進(jìn)行轉(zhuǎn)換
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者