螢幕適配問題

2021-09-26 00:24:18 字數 1782 閱讀 1416

在smllestwidth方案中 需要在dimens.xml寫入dp值(即將對應的px轉換為dp),那麼這個dp值是如何計算出來的呢?

首先我們需要直到螢幕的密度density ,可根據 density=dpi/160 獲得 dpi是每英吋畫素

然後我們就可以根據密度(density),畫素(px),計算出對應的dp dp=px/density=px/(dpi/160)

不同的values-swdp資料夾下的dimens如何生成的?

對於不同尺寸的dimens檔案的生成,需要考慮到兩個因素:最小寬度基準值是多少/需要適配哪些最小寬度尺寸

優缺點

使用**生成對應問檔案和尺寸資源

2.在清單檔案中註冊設計圖的寬高尺寸(dp)

android:name="design_width_in_dp"

android:value="360"/>

3.根據對應的螢幕尺寸在對應的布局中布局控制項

4.若某個activity的設計尺寸與清單檔案中的尺寸不一樣時,可以實現customadapt介面,指定特定的螢幕尺寸(dp)

//是否以螢幕寬度為適配基準

@override

public boolean isbaseonwidth()

//適配的尺寸是多少(dp)

@override

public float getsizeindp()

}5.若某個activity不想適配,可以實現canceladapt介面

}6.可以在 pt、in、mm 這三個冷門單位中,選擇乙個作為副單位,副單位是用於規避修改 displaymetrics#density 所造成的對於其他使用 dp 布局的系統控制項或三方庫控制項的不良影響,使用副單位後可直接填寫設計圖上的畫素尺寸,不需要再將畫素轉化為 dp

autosizeconfig.getinstance().getunitsmanager()

.setsupportdp(false)

.setsupportsp(false)

.setsupportsubunits(subunits.mm);

**混淆

-keep class me.jessyan.autosize.** 

-keep inte***ce me.jessyan.autosize.**

優缺點

裝置螢幕資訊

原理解析

*  px:即畫素,1px代表螢幕上乙個物理畫素點

* dp(dip):裝置無關畫素,只要針對控制項尺寸大小 dp=px/density

* sp:與縮放無關的抽象畫素,類似於dp,但它主要針對文字尺寸大小

* density:螢幕密度,每乙個裝置的density都是固定的 density=dpi/160

適配方案最核心的思想是:根據公式算出density

dp=px/density

density=dpi/160

displaymetrics metrics)

return 0;

}

根據原始碼可知,無論使用任何單位,最終都會轉化為px

android 螢幕適配問題

如何將乙個應用程式適配在不同的手機上,雖然這不算是乙個技術問題,但是對於剛剛做螢幕的開發人員來說,還真不是一件多麼簡單的事情。首先 你需要在 androidmanifest.xml 檔案的元素如下新增子元素 supports screens android largescreens true and...

android 螢幕適配問題

如何將乙個應用程式適配在不同的手機上,雖然這不算是乙個技術問題,但是對於剛剛做螢幕的開發人員來說,還真不是一件多麼簡單的事情。首先 你需要在androidmanifest.xml檔案的元素如下新增子元素 android normalscreens true android anydensity tr...

安桌螢幕適配問題

1 了解幾個概念 1 解析度。解析度就是手機螢幕的畫素點數,一般描述成螢幕的 寬 高 安卓手機螢幕常見的解析度有480 800 720 1280 1080 1920等。720 1280表示此螢幕在寬度方向有720個畫素,在高度方向有1280個畫素。2 螢幕大小。螢幕大小是手機對角線的物理尺寸,以英吋...