導航:首頁 > 操作系統 > android寬度多少dp

android寬度多少dp

發布時間:2022-09-24 05:02:36

android 關於"尺寸"的那些事(dp,dip,sp,pt,px...)

屏幕大小:屏幕大小是手機對角線的物理尺寸,以英寸inch為單位。比如我的Mix 2手機屏幕大小為5.99 inches,意味著我的屏幕對角線長度為5.99inches = 5.99 * 2.54 = 15.2146cm

解析度:屏幕的像素點數,一般表示為a*b。例如某手機解析度為21601080,意味著手機屏幕的豎直方向(長)有2160個像素點,水平方向(寬)有1080個像素點。

px :Pixels ,像素;對應屏幕上的實際像素,是畫面中最小的點(單位色塊),像素大小沒有固定長度值,不同設備上1個單位像素色塊大小不同。

這么說可能有點陌生,用屏幕解析度來說,今年流行起來的「全面屏」解析度是 2160*1080,但是你也可以發現,雖然很多全面屏手機解析度一樣,但是明顯看得出來屏幕大小不一樣,這也解釋了「不同設備像素色塊大小是不同的」。

pt :1pt=1/72 inch,用於印刷業,非常簡單易用;

dpi :Dots Per Inch,每英寸點數;詳見ppi

ppi :Pixels Per Inch,每英寸像素數;數值越大顯示越細膩。計算式:ppi = 屏幕對角線像素數 / 屏幕對角線長度。

還是舉全面屏的例子,解析度2160*1080,屏幕大小是5.9inches,勾股定理可以得到對角線像素數大約是2415,那麼ppi = 2415 / 5.99 = 403.

事實上dpi 和 ppi 一定程度上可以劃等號,都表示像素密度,計算方式完全一致,只不過使用場景不一樣。dpi中的dots點屬於列印或印刷等領域,例如drawable 文件對應的就是dpi,而ppi中的pixel屬於屏幕顯示等領域

dp/dip : Density-independent Pixels,密度無關像素 - 基於屏幕物理密度的抽象單位。1dp等於 160 dpi 屏幕上的dpx,這是 系統為「中」密度屏幕假設的基線密度。在運行時,系統 根據使用中屏幕的實際密度按需要以透明方式處理 dp 單位的任何縮放 。dp 單位轉換為屏幕像素很簡單:px = dp * (dpi / 160)。 例如,在 240 dpi 屏幕上,1 dp 等於 1.5 物理像素。在定義應用的 UI 時應始終使用 dp 單位 ,以確保在不同密度的屏幕上正常顯示 UI。

如果看完文章還是覺得很懵,那麼可以直接記住: 1dp單位在設備屏幕上總是等於1/160 inch。

sp :Scale-independent Pixels ,與 dp 單位相似,也會根據用戶的字體大小偏好進行縮放。

首先我們放上源碼中對尺寸單位的轉換

可以看到,輸入值類型為dp時,返回 value * DisplayMetrics.density,到這里我們可能會發懵:嗯?不對啊,前面我們不是通過px 和 dp 的換算公式來計算的么,怎麼這里就簡簡單單乘了一個DisplayMetrics.density?不要慌,我們先看看源碼中對DisplayMetrics.density的介紹。

源碼注釋中說到「在160dpi的屏幕下,density的值為1,而在120dpi的屏幕下,density的值為0.75」,我們可以大膽的猜測一下,120dpi下的density=0.75的原因是120dpi * 1 /160dpi=0.75。實際上,也就是這么回事。我們下面會仔細的分析。

需要補充一下,通常意義上Android 屏幕的密度,指的是像素密度dpi/ppi,對應於源碼中的DisplayMetrics.densityDpi。

為什麼引入dp?

Android 引入了dp這一單位,使得不論多大屏幕,多大dpi,顯示的效果始終保持一致。

但是根據前面我們提到的px與dp的換算公式px = dp * (dpi / 160),很顯然,由於相同解析度但不同屏幕大小的設備dpi是不同的,導致px和dp的基本不存在一個固定的換算關系,為了方便屏幕適配,Android設置了6個通用的密度,換算px與dp時採取通用密度計算,而非設備實際的密度。

以下為6種通用密度,以及其最小的解析度

得到上面通用密度之後,我們換算dp與px多了一種簡便方式。前面我們提到Android將mdpi作為基準,此時1px = 1dp,又有px = dp * (dpi / 160),所以我們可以很容易的得到以下換算:

還記不記得前面源碼中的density屬性,實際上DisplayMetrics.density = dpi / 160 ,表示的就是在某個通用密度下dp與px的換算比(1dp/1px的值)

這部分其實和程序員自身已經關系不大了,畢竟參與工作之後這些都是UI人員的活兒了。不過鑒於現在我還只是一枚在校生,還是記下來以免自己遺漏吧。

建議在xhdpi中作圖

原因嘛,首先現在主流解析度是1080p,以及最近流行起來的全面屏18:9,而xhdpi對應720p,向低dpi兼容自然沒問題,即便在xxhdpi中顯示,也會有個不錯的效果。而如果以1920*1080作圖,顯然圖片素材佔用的內存很大,而且也會增大應用安裝包的大小。

只有一個原則:資源放入對應dpi的文件夾中,Android會機智的載入合適的資源。

以drawable資源為例:

我們平時開發小項目&對UI要求不高時,只使用一套xhdpi的資源就足夠了,雖然這可能會導致在hdpi及以下的手機中有些卡頓,因為xhdpi的圖片運行在hdpi及以下的手機上會比較吃內存,不過無傷大雅。

而如果不為圖片資源犯愁時(有UI人員的支持,就是任性),就可以添加所有dpi的資源。當然,重點還是要滿足ldpi:mdpi:hdpi:xhdpi:xxhdpi=3:4:6:8:12的規律。

好像說了不少廢話,哈哈,大概就這么多吧。

② vivos9最小寬度是多少dp

S9機型最小寬度值是360dp,建議不要使用代碼操作手機,也不要修改開發者模式中的設置,以免手機使用出現異常;在手機的使用過程中有疑惑,可進入vivo官網--我的--在線客服--輸入人工,咨詢在線客服反饋。

③ android 屏幕有多少dp

dp(與密度無關的)與手機寬高有關。
px:(像素密度 ) 與寬高無關,與高清倍數有關。
公式如下:
dp的換算: dp(value)=(int) (px(value)/1.5 + 0.5)
代碼轉換如下:
public static int dip2px(Context context, float dipValue){
final float scale = context.getResources().getDisplayMetrics().density;
return (int)(dipValue * scale + 0.5f);
}
public static int px2dip(Context context, float pxValue){
final float scale = context.getResources().getDisplayMetrics().density;
return (int)(pxValue / scale + 0.5f);
}

④ 設計師給了px單位的標注,Android開發到底要設置多少dip,dp,sp

dip和dp一樣,一般用dp簡潔省事。sp是用於字體的。一般情況,字體展示給美工看,如果可以,就定了字型大小。寬高肯定不能用px要用dp,怎麼定,一般情況,可以用寬高比決定的,用比例決定,布局是線性布局。不可以的,一般情況以720x1278為例,px轉換dp是除以2,生成的界面最後微調

⑤ android 寬度 多少dp

dp就是設置控制項的寬度,如果你想直接占滿屏幕,你可以直接用兩個常量wrap_content、match_parent
wrap_content 表示控制項內容大小
match_parent 表示占滿屏幕

⑥ android dp和dip的區別

  1. dp: Density-independent Pixels
    一個抽象的單元,基於屏幕的物理密度。
    (dp和dip的意義相同,所以不用區別對待)。
    這些單元是相對於160dpi(dots per inch)的屏幕說的,在160dpi的屏幕上,1dp粗略地等於1px。
    當運行在更高密度的屏幕上的時候,要繪制1dp的像素數量會放大一個比例,這個比例就是和屏幕密度(dpi)相關。
    類似的,在一個低密度的屏幕上,像素數目會縮小一個比例。
    dp到px的這個比例將會隨著屏幕的密度變化,而不是直接的比例關系。
    用dp單位,而不是px,是一種簡單的屏幕密度適配解決方式。
    換句話說,它提供了一種方式,可以在多種設備上維持真實尺寸一致性。

  2. sp:Scale-independent Pixels
    這個有點像dp單位,但是它也根據用戶的字體設置(font preference)縮放尺寸。
    建議用這種尺寸單位來標注字體尺寸,這樣它們將會因為屏幕密度和用戶設定而調整。

  3. pt:Points 1/72 inch(英寸),根據屏幕的物理尺寸。

  4. px: Pixels

    相應於真實的像素。
    這種單位不被建議,因為真實的表達會根據設備的不同相差很遠。
    每個設備上每英寸的像素數不同(密度不同),並且屏幕上總的像素數也不同(整體大小不同)。

⑦ Android UI里1px等於多少dp

dp、sp和px的區別:現在這里介紹一下dp和sp。dp也就是dip。這個和sp基本類似。如果設置表示長度、高度等屬性時可以使用dp
或sp。但如果設置字體,需要使用sp。dp是與密度無關,sp除了與密度無關外,還與scale無關。如果屏幕密度為160,這時dp和sp和px是一
樣的。1dp=1sp=1px,但如果使用px作單位,如果屏幕大小不變(假設還是3.2寸),而屏幕密度變成了320。那麼原來TextView的寬度
設成160px,在密度為320的3.2寸屏幕里看要比在密度為160的3.2寸屏幕上看短了一半。但如果設置成160dp或160sp的話。系統會自動
將width屬性值設置成320px的。也就是160 * 320 / 160。其中320 /
160可稱為密度比例因子。也就是說,如果使用dp和sp,系統會根據屏幕密度的變化自動進行轉換。

下面看一下其他單位的含義

px:表示屏幕實際的象素。例如,320*480的屏幕在橫向有320個象素,在縱向有480個象素。

in:
表示英寸,是屏幕的物理尺寸。每英寸等於2.54厘米。例如,形容手機屏幕大小,經常說,3.2(英)寸、3.5(英)寸、4(英)寸就是指這個單位。這
些尺寸是屏幕的對角線長度。如果手機的屏幕是3.2英寸,表示手機的屏幕(可視區域)對角線長度是3.2*2.54 =
8.128厘米。讀者可以去量一量自己的手機屏幕,看和實際的尺寸是否一致。

mm:表示毫米,是屏幕的物理尺寸。

pt:表示一個點,是屏幕的物理尺寸。大小為1英寸的1/72。
原帖地址http://www.ophonesdn.com/forum/thread-1946-2-1.html

px(Pixels ,像素):對應屏幕上的實際像素點。例如,320*480的屏幕在橫向有320個象素,在縱向有480個象素。

in(Inches

,英寸):屏幕物理長度單位。每英寸等於2.54厘米。例如,形容手機屏幕大小,經常說,3.2(英)寸、3.5(英)寸、4(英)寸就是指這個單位。這
些尺寸是屏幕的對角線長度。如果手機的屏幕是3.2英寸,表示手機的屏幕(可視區域)對角線長度是3.2*2.54 =
8.128厘米。讀者可以去量一量自己的手機屏幕,看和實際的尺寸是否一致。

mm(Millimeters ,毫米):屏幕物理長度單位。

pt(Points ,磅):屏幕物理長度單位, 表示一個點,是屏幕的物理尺寸。大小為1英寸的1/72。

dp(與密度無關的像素):邏輯長度單位,在 160 dpi 屏幕上,1dp=1px=1/160英寸。隨著密度變化,對應的像素數量也變化,但並沒有直接的變化比例。
dip:與dp相同,多用於Google示例中。
sp(與密度和字體縮放度無關的像素):與dp類似,但是可以根據用戶的字體大小首選項進行縮放。

盡量使用dp作為空間大小單位,sp作為和文字相關大小單位

⑧ 怎麼算設置多少 dp 才能讓 Android 適應不同解析度

Android中一個layout想適配各種屏幕尺寸那麼需要按以下規則去寫layout:
1. 盡量使用wrap_content、match_parent、weight 來規定layout的大小。
2. 要確保布局的靈活性並適應各種尺寸的屏幕,應使用 「wrap_content」 和 「match_parent」 控制某些視圖組件的寬度和高度。
3. 使用 「wrap_content」,系統就會將視圖的寬度或高度設置成所需的最小尺寸以適應視圖中的內容,而 「match_parent」(在低於 API 級別 8 的級別中稱為「fill_parent」)則會展開組件以匹配其父視圖的尺寸。
4. 如果使用 「wrap_content」 和 「match_parent」 尺寸值而不是硬編碼的尺寸,視圖就會相應地僅使用自身所需的空間或展開以填滿可用空間。此方法可讓布局正確適應各種屏幕尺寸和屏幕方向。
5. 如果某些地方必須要規定控制項的大小,那麼要使用dp 或者 dip單位。
6. 欄位必須使用 sp單位。
7. 將不同的圖片放到不同的drawable目錄下,解析度的匹配規則如下:
drawable-mdpi 320 * 480
drawable-hdpi 480*800
drawable-xhdpi 720 * 1280
drawable-xxhdpi 1080 * 1920
drawable-xxxhdpi 1080+

⑨ Android 中8dp是多少毫米

DP是最常用但也最難理解的尺寸單位。它與「像素密度」密切相關,所以首先我們解釋一下什麼是像素密度。假設有一部手機,屏幕的物理尺寸為1.5英
寸x2英寸,屏幕解析度為240x320,則我們可以計算出在這部手機的屏幕上,每英寸包含的像素點的數量為240/1.5=160dpi(橫向)或
320/2=160dpi(縱向),160dpi就是這部手機的像素密度,像素密度的單位dpi是Dots Per
Inch的縮寫,即每英寸像素數量。橫向和縱向的這個值都是相同的,原因是大部分手機屏幕使用正方形的像素點。不同的手機/平板可能具有不同的像素密度,例如同為4寸手機,有480x320解析度的也有800x480解析度的,前者的像素密度就比較低。
Android系統定義了四種像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),它們對應的dp到px的系
數分別為0.75、1、1.5和2,這個系數乘以dp長度就是像素數。例如界面上有一個長度為「80dp」的圖片,那麼它在240dpi的手機上實際顯示
為80x1.5=120px,在320dpi的手機上實際顯示為80x2=160px。如果你拿這兩部手機放在一起對比,會發現這個圖片的物理尺寸「差不
多」,

閱讀全文

與android寬度多少dp相關的資料

熱點內容
方言pdf 瀏覽:997
程序員格子襯衣搞笑圖 瀏覽:390
vxworks編譯版本 瀏覽:111
怎麼查看讀取相冊的app 瀏覽:206
那個空調用日立壓縮機 瀏覽:816
androidsdkr25下載 瀏覽:12
哪位程序員的名字是誰 瀏覽:568
蘋果手機底部怎麼放5個app 瀏覽:915
壓縮機出涼風 瀏覽:823
不能從文件夾看到迅雷 瀏覽:139
編程處理表格有意義嗎 瀏覽:438
java字元串回車換行 瀏覽:155
普通分體空調是什麼壓縮機 瀏覽:824
數控車床牙刀滾花編程實例 瀏覽:944
辦公室pdf 瀏覽:279
自動化測量和編程 瀏覽:588
827編程教學 瀏覽:726
跳轉到文件夾 瀏覽:518
文件夾怎麼解壓並安裝 瀏覽:406
壓縮機維修論壇 瀏覽:8