分辨率,屏幕尺寸,屏幕密度,dp,px,sp
生活随笔
收集整理的這篇文章主要介紹了
分辨率,屏幕尺寸,屏幕密度,dp,px,sp
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們在做UI時候經常遇到這幾個概念,但是就是不知道他們之間的關系,這篇文章將會解惑。
像素:顯示圖像的基本單元,單位px
分辨率:是縱橫向上的像素點數,單位是px,比如1920*1080說的是縱向有1920個像素點,橫向有1080個像素點。
屏幕尺寸:是手機屏幕對角線的長度,單位為英寸。
屏幕像素密度:每單位的像素的點數,簡稱PPI(Pixels Per Inch),單位dpi(Dots Per Inch)。
上述的關系為:
屏幕的像素密度=√(分辨率高2 + 分辨率寬2)÷ 屏幕尺寸。
例如:
那我們Android中的dp和sp與上面的概念有什么關系呢?
dp:Android引入了密度無關像素 (dp) 作為度量單位來設計界面。dp 是一個虛擬像素單位,1 dp 約等于中密度屏幕(160dpi;“基準”密度)上的 1 像素。對于其他每個密度,Android 會將此值轉換為相應的實際像素數。
px = dp * (dpi(屏幕的像素密度) / 160)
sp:為縮放后的字體的單位,我們不能在布局中使用它,我們通常在設置字體大小中使用。
px = sp(scaleDpi)*
代碼的位置為:
public class TypedValue {public static float applyDimension(int unit, float value,DisplayMetrics metrics) {switch (unit) {case COMPLEX_UNIT_PX:return value;case COMPLEX_UNIT_DIP:return value * metrics.density;case COMPLEX_UNIT_SP:return value * metrics.scaledDensity;case COMPLEX_UNIT_PT:return value * metrics.xdpi * (1.0f/72);case COMPLEX_UNIT_IN:return value * metrics.xdpi;case COMPLEX_UNIT_MM:return value * metrics.xdpi * (1.0f/25.4f);}return 0;} }我們適配圖片時候常常會涉及到xxhdrawable的素材又是什么意思呢?
見如下圖:
參考資料:
今日頭條適配方案
支持不同的像素密度
總結
以上是生活随笔為你收集整理的分辨率,屏幕尺寸,屏幕密度,dp,px,sp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity中更换鼠标的图标
- 下一篇: 顶帖广告