用screenutil()元件
什麼是螢幕尺寸、螢幕解析度、螢幕畫素密度?螢幕尺寸指的是螢幕對角線的長度。什麼是dp、dip、dpi、sp、px以及他們之間的關係?
什麼是mdpi、hdpi、xdpi、xxdpi以及如何計算和區分?
單位是英吋,1英吋=2.54cm
螢幕解析度是指在橫縱向上的畫素點數.
單位是px,1px=1個畫素點
一般以縱向畫素*橫向畫素。eg:1920*1080
螢幕解析度越高,顯示效果越好。
螢幕畫素密度是指每英吋上的畫素點數。
單位是dpi,即dot per inch
螢幕畫素密度與螢幕尺寸和螢幕解析度有關。
其決定了每英吋畫素點數越大的話,那麼其螢幕畫素密度越高,相對而言,其相對顯示效果就越好。
從nexus 5 來說,其螢幕尺寸是4.95inch,解析度是1920*1080.
其官方dpi是445
下面說明一下如何算出dpi=445:
先看看4.95inch是指的對角線的長度,而dpi是螢幕畫素密度是指每英吋上的畫素點數。
然後用對角線的畫素點數除以4.95英吋,就得出了dpi,即每英吋上的畫素點數。
px是畫素,構成影象的最小單位。一般在進行ui設計以及android原生api的時候返回的數值都是以px作為計量單位。
dp和dip是一樣的。但是注意區分dip不等於dpi.
dp、dip都是密度無關畫素,即density independent pixels。
以160dpi為基準,1dip=1px
這也就是說,使用px不能保證在不同解析度和不同畫素密度上保持相同的效果。
而使用dp作為單位:
所以在不同解析度和不同畫素密度的裝置上,通過使用dp作為單位就可以保證在不同裝置上顯示相同的效果。
scale-independent pixels。可以根據文字大小首選項進行縮放。【對於文字的對齊方式需要考慮baseline基線問題】
google推薦使用12sp以上,且可以用12sp、14sp、18sp、22sp作為字型的首選大小,不要用奇數或者小數,如果使用奇數或者小數,在進行字型縮放的時候會造成精度的丟失。
以上說明的是計量單位。
對不同的畫素密度進行區分是為了適配方便,在不同的畫素密度的裝置上的顯示效果是不一樣的,為了保證在不同的畫素密度的裝置上都能有好的顯示效果就需要為不同的裝置提供不同的。
名稱畫素密度範圍
mdpi
120dpi~160dpi
hdpi
160dpi~240dpi
xhdpi
240dpi~320dpi
xxhdpi
320dpi~480dpi
***hdpi
480dpi~640dpi
android螢幕適配
1 配置android應用程式適配在不同的手機上,需要在androidmanifest.xml檔案的manifest標籤中新增子元素 1 2 3 4 5 6 7 8 9 10 manifestxmlns android supports screens android smallscreens tr...
Android螢幕適配
在sdk中的幫助文件中。develpe training best practices supporting multiple screens 這裡有多屏適配的介紹。現做簡單記錄。screen size small 至少 426dp x 320dp normal 至少 470dp x 320dp l...
android螢幕適配
ui在不同的螢幕畫素或大小中顯示效果可能會不同 1 建議使用盡量使用線性布局和相對布局,基本上不會產生螢幕大小不適應的問題 2 設定控制項寬高的時候使用單位dip dp 是根據當前裝置大小比例計算出來的 3 文字設定盡量使用sp單位 4 盡量不使用px設定大小 畫素px和dip相互轉換工具,實現兩種...