導航:首頁 > 操作系統 > androiddppxdpi

androiddppxdpi

發布時間:2022-10-23 18:45:27

android中dip,dp,sp,pt和px的區別

dip: device independent pixels(設備獨立像素). 一般我們為了支持多種解析度如WVGA、HVGA和QVGA 推薦使用這個,不依賴像素。
dp: dip是一樣的,谷歌官方推薦使用這個
px: pixels(像素). 不同設備顯示效果相同,一般我們HVGA代表320x480像素,這個用的比較少。
pt: point,是一個標準的長度單位,1pt=1/72英寸,用於印刷業,非常簡單易用;
sp: scaled pixels(放大像素). 主要用於字體顯示best for textsize。

㈡ android dpi是什麼意思

DPI表示解析度,指每英寸長度上的點數.DPI又可細分為水平解析度和垂直解析度;
修改 /system/build.prop 文件,修改 ro.sf.lcd_density 的值,默認是 ro.sf.lcd_density=320。
修改後保存退出,重啟。
安卓手機的屏幕解析度如今也已然達到了這2K的程度,通過修改這手機的dpi可以控制這程序在屏幕上顯示的數量,而且字體也會有一定的變化,有興趣的的用戶可以試一試。

㈢ android安卓系統dp/sp/px換算表比率 ratexxxhdpi是多少

首先要明確兩點,什麼是dpi?什麼是dp?
dpi = dots per inch(每個inch上有多少個點)
160dpi的屏幕,1dp = 1px,也就意味著1dp = 1/160 inch。
所以每個inch上的點數越多(點的密度越大),每個dp對應的px也就越大

dp/sp可以認為是相同的,不過sp通常用於設置字體大小,而dp用於尺寸。
dp/sp與px換算,是和設備的density相關的,dp * density (密度)= px。
float density = Resources.getSystem().getDisplayMetrics().density;

所謂的xhdpi,其dpi並不是某一固定取值,只要在240~320dpi范圍內的都認為是xhdpi(mdpi/hdpi/xhdpi/xxhdpi類似)。
所以同樣是xhdpi的手機,dp和px的轉換也是不同的。

㈣ Android中常見的單位ppi,dp,dpi,sp,px

在android 開發過程中,我們使用的單位比較少,一般情況下在描述字體大小的時候我們通常用sp,而在設置間距的時候我們用dp,除此之外很少再用到其他單位,而且很多時候我們用著用著就習慣了,也不去探究為什麼這么寫,可不可以用其他單位,每個單位到底代表著什麼意思,所以說,習慣真的很可怕呀。今天,我們就來一探究竟,看看這些單位背後的含義。

像素即是屏幕上顯示數據的最基本的點,在PS裡面也是其最根本的單位,所有的圖形都是在此基礎上生成的,平時我們經常講的手機屏幕解析度就是以像素作為單位的,比如在android中我們經常說的手機像素是1080X1920,其實它所表達的意思是在該手機上面在橫向上面有1080個像素點,在縱向上有1920個像素點。

在android中用來形式字體大小的單位,正常情況下會按照手機系統設置的文本大小來顯示文字,但是同時也會與系統設置的文本保持一致,比如在有些老年機上面為了更好的操作手機有些人會將字體設置為較大字體,這個時候使用sp作為單位的字體也會隨之變大,但是如果將字體大小的單位設置為dp,則不會隨著系統字體的變化而變化。

在每次的手機廠商新品發布會上,我們都會聽到關於手機的介紹,比如手機的屏幕解析度,多大尺寸等等。而當我們知曉一個手機的屏幕分辯率和手機尺寸的時候,就可以計算出手機的物理像素密度,其計算公式為:

需要注意的是,PPI是Android手機物理像素密度,而非在Android開發過程中我們經常說到的像素密度。

屏幕密度與dpi密切相關,dpi是每英寸的點數。也就是說,密度越大,每英寸內容納的點數就越多。

在android.util包下有個DisplayMetrics類可以獲得密度相關的信息。最重要的是densityDpi這個成員,它有如下幾個常用值:

DENSITY_LOW = 120

DENSITY_MEDIUM = 160 //默認值

DENSITY_TV = 213 //TV專用

DENSITY_HIGH = 240

DENSITY_XHIGH = 320

DENSITY_400 = 400

DENSITY_XXHIGH = 480

DENSITY_XXXHIGH = 640

dpi的值主要是通過displayMetrics獲取的,獲取方式為:

val densityDpi = resources.displayMetrics.densityDpi。

dp和dip是一樣的,設備獨立像素,這個和設備硬體有關,不同設備有不同的顯示效果。而通常在做android項目的時候,為了適配市場上面眾多的手機屏幕分辯率,我們一般都會採用dp。dp是Android基於物理設備的PPI抽象出來的一個單位。它是以160dpi的屏幕為基準定義的,在160dpi的屏幕上1dp=1px,那麼由此我們就可以得出其計算公式:

換算公式:1dp = (屏幕ppi/160)px或者是px = (屏幕ppi/160)*1dp。舉個例子:假設ppi = 320,那麼1dp = 2px。

下面我們來演練一下:

如圖所示,手機的屏幕分辯率為1080X1920,尺寸為5寸,從而計算得出PPI的值為440,再通過PPI計算出1dp 約等於3px。假設現在美工給的圖上面有一個a圖標,距離頂部的距離為30px,那麼根據最終我們的換算結果可知,我們設置為10dp就可以達到完美的顯示效果。

㈤ px,dp,dip,dpi,sp 等到底有什麼聯系區別

px(像素)是我們UI設計師在PS里使用的(不解釋),同時也是手機屏幕上所顯示的(也不解釋)
dp是開發寫layout的時候使用的尺寸單位,sp是開發寫layout時關於字體的字型大小單位,且dp與sp總為1:1關系。

Android支持四種不同的dpi模式:ldpi mdpi hdpi xhdpi

一般地,手機解析度與所運行的dpi模式是匹配的,例如hvga(320x480像素)的手機屏幕一般在3.5英寸左右,運行在mdpi模式下(也有例外,稍後解釋)(這個是ROM控制的,app不能改變)。當運行在mdpi下時,1dp=1px:也就是說設計師在PS里定義一個item高48px,開發就會定義該item高48dp;Photoshop中14px大的字體,開發會定義為14sp。

對於一部wvga(480x800)手機(G7、N1、NS),一般是運行在hdpi模式下。當運行在hdpi模式下時,1dp=1.5px:也就是說設計師在PS里定義一個item高72px,開發就會定義該item高48dp;Photoshop中21px大的字體,開發會定義為14sp。

所以,當你的app需要適配多個dpi模式的時候(例如同時適配mdpi與hdpi),若你在wvga下做設計,你需要將你的各數值都為3的倍數,並在切圖標注時將所有的數字除以3乘以2換算成dp,這樣開發的同一套layout就能用在兩個不同的dpi模式下,而不是寫兩套layout。

mdpi與hdpi是2:3的關系
mdpi與xhdpi是1:2的關系
ldpi與mdpi是3:4的關系

Galaxy Nexus 是720P屏幕,就是運行在xhdpi下的。

可以想見為什麼iOS的開發者升級到 Retina Display 是多麼的無痛

再補充一種例外,有些比較山寨的Pad有可能是7英寸屏幕,解析度為wvga(480x800)運行在mdpi下,所以一部wvga手機是320x533dp,一部wvga平板是480x800dp,可以顯示的內容會多很多。

我語言沒有梳理的很清楚,希望你看得懂:P

㈥ 像素px、解析度、ppi、dpi、dp(dip)

屏幕尺寸(Screen Size): 屏幕對角線的長度。iPhone5屏幕尺寸為4英寸、iPhone6屏幕尺寸為4.7英寸,指的是顯示屏對角線的長度。 1 inch = 2.54cm = 25.4mm
解析度:屏幕上的像素總數。常用的表現形式如:1280x720, 1920x1080等。

px,pixel,像素,電子屏幕上組成一幅圖畫或image的基本單元。
pt, point,點,印刷行業常用單位,等於1/72英寸。
ppi,pixel per inch,每英寸像素數,值越高,屏幕越細膩。
dpi, dot per inch,每英寸多少點,該值越高,則圖片越細膩。
dp,dip, Density-independent pixel,安卓開發用的長度單位。以160ppi為標准,和iPhone的scale差不多的意思。安卓用dp適配,系統會自動將dp轉換為px。當屏幕像素點密度為160ppi時,1dp=1px。

當圖片的解析度是72ppi(dpi)時,1pt = 1px;
當圖片的解析度是72*2ppi(dpi)時,1pt = 2px;

dpi最初用於衡量列印物上每英寸的點數密度,DPI值越大圖片越精細。當DPI的概念用在計算機屏幕上時,就應稱之為ppi。同理: PPI就是計算機屏幕上每英寸可以顯示的像素點的數量。在電子屏幕顯示中ppi和dpi是一樣的。

假設屏幕解析度為W H(px),物理尺寸為a b(inch),
則我們常說的屏幕尺寸c(如5.0英寸)其實是對角線的長度,因此

則像素密度(PPI),指的是屏幕單位長度的像素數

由此我們推理出:

因此我們可以得出PPI( DPI)計算公式:

dp,獨立像素,虛擬單位,又稱設備無關像素。1dp的長度相當於一個160dpi的屏幕上一個物理像素的長度。而160dpi的屏幕則是被android定義為基準的屏幕(mdpi)。在app運行的時候,android會將dp轉為實際像素進行布局。轉換的公式為:
px = dp * (dpi / 160)。
dp為安卓開發時的基本長度單位,根據不同的屏幕解析度,與px有不同的對應關系。根據其像素密度,我們將安卓端屏幕分為以下幾種規格:

1dp即為當屏幕密度值為160ppi時,1pt=1px。則,在上表中,當密度為mdpi時,1dp = 1px。 以mdpi為標准,上表中屏幕的密度值比分別為:

即,在xhdpi的密度下,1dp=2px;在hdpi情況下,1dp=1.5px。其他類推。

㈦ 這一次要幫你徹底搞明白px、ppi、dot、dpi、sp、dp、pt

這一次要幫你徹底搞明白px、ppi、dot、dpi、sp、dp、pt

這是初級設計師經常弄混淆的幾個概念,下面我以「基本概念,易混淆的點,從問題入手,總結」四個方面來聊一聊 Px,ppi;dot,dpi; sp,dp;pt 那些事兒。

一、px,ppi;dot,dpi; sp,dp;pt 的基本概念

1. px:像素

1像素實際上是一個顏色點,所以又稱像素點。大量不同顏色點組成一張圖像,因此圖像的基本單位是像素px(沒有比像素更精細的單位了)。

像素主要用來表示圖像大小和顯示器解析度(如1920*1080px)。像素本身的物理尺寸不固定,所以它的物理尺寸沒有意義,有意義的是它的數量。

為什麼像素的物理尺寸不固定?

像素本身不是物理世界的單位,是一個相對單位,尺寸可大可小。在高密度的屏幕上像素會變小,顯示效果更清晰。因為「像素量px = 像素密度ppi x 屏幕尺寸in」,同樣是1英寸的屏幕,密度越大,像素越多,則單個像素的物理尺寸越小。

都是圖片相關信息,圖片體積和像素有什麼關系?

通常所說的100KB的圖片指的就是圖片的體積,首先一張圖像在存儲時,會描述每個像素點的顏色信息、位置、數量,這些描述數據就是圖像的體積,如果像素越多自然圖像體積越大。假如一張圖片都是一個顏色,圖像在保存時就會壓縮,只存一個像素點的顏色信息,這樣的圖像體積會小很多。所以,像素點越多,顏色越復雜,圖像體積越大。

為什麼我們要買高像素的相機?

日常我們所說的幾百萬像素的相機,這個幾百萬像素指的是拍攝最大像素量照片時,圖像寬高位置上像素量的乘積。如果像素量大,將來印刷或者在顯示器上查看,在1英寸上就有足夠多的像素顯示,像素密度增加,圖像也會更清晰。因此,我們更願意買高像素的相機。

總結: 像素px常用來描述圖像尺寸和顯示器解析度。

2. ppi:像素密度(pixel per inch)

1英寸屏幕上顯示的像素量,密度單位。決定圖片的物理顯示尺寸,只有涉及到顯示才有意義。值越大,顯示越細膩。

計算公式: ppi=屏幕對角線上的像素量px/對角線長度inch = √(屏幕橫向像素^2 + 屏幕縱向像素^2)/對角線長度。

為什麼說ppi決定圖片的物理尺寸?

一個手機的顯示屏在出廠時就確定了PPI的值,PPI越大,顯示越高清。圖片的物理尺寸 = PPI * Px,通常一張圖像的px確定,ppi越大,則它的物理尺寸越小。所以為什麼我們在高PPI的手機上,人眼看到的圖像比低PPI的圖形小。在設計行業,我們會針對高PPI的手機,設計更大像素的圖像也是這個道理。

日常所說的解析度有兩個概念,一個指顯示器的解析度,另一個指圖像的解析度。顯示器解析度指顯示器所能顯示的像素多少(1920px*1080px),顯示器可顯示的像素越多,畫面就越精細,因為屏幕尺寸一定,解析度越大,像素密度越大。顯示器解析度都用(1920px*1080px)這種形式表示,清晰度還需要結合屏幕尺寸計算。圖像解析度則是單位英寸中所包含的像素點數,比如photoshop 里新建畫布時設置的圖像解析度72ppi,其定義更趨近於解析度本身的定義

注意:

同一顯示屏上查看圖片,像素量越大,圖片尺寸越大。

顯示解析度一定的情況下,顯示屏越小圖像越清晰(比如MacBook),反之,顯示屏大小固定時,顯示解析度越高圖像越清晰。

對於設計師來說像素密度很重要,需要很據像素密度來切圖和適配,理解了像素密度的意義,就理解了幾倍圖之間的關系。

3. dot:墨點

印刷品的最小單位,表示一個印刷顏色點,類似px,只有相對大小,用在印刷行業。

4. dpi:列印解析度 (dot per inch)

1英寸上列印的墨點數量,密度單位,只用在印刷行業,值越大,印刷越精細。

注意:

與安卓的dp完全沒關系。

印刷行業相關的單位是dot,dpi。印刷尺寸(英寸)=列印墨點數(dot)/列印機密度(dpi)。

照片的清晰度,是由列印機解析度決定的。所以一張照片包含的像素越多(需要高像素照相機拍攝),高dpi列印機就可以列印出清晰的圖片。如果照片像素量px一定, 列印機的dpi越高, 則列印尺寸越小。(這里可設置為dot=px)

5. pt:點(印刷)

大小為1/72英寸=0.35mm,單位是英寸,是物理長度單位,大小固定,絕對單位。源於活字排版時代,photoshop里的字體單位就只這個。

公式: 1pt= (PPI / 72) px。

當photoshop中新建畫布的解析度為72ppi,由公式,則1pt=1px。當解析度為144ppi時,1pt=2px。

注意: 這里指印刷行業的pt哦!

6. pt: 點(iOS)

iOS系統開發單位,是獨立像素的意思,長度固定,不隨屏幕像素密度ppi變化而變化。

蘋果公司規定:普屏時1px=1px,而普屏的ppi=163像素/英寸,那麼pt=1/163英寸=0.16mm(固定值)。普屏1px=1px,高清屏1pt=2px。

用固定長度pt作為開發單位的好處是,這樣可以保證同一張圖片在不同設備上顯示大小一樣,因為pt值是固定的。高清屏上1pt等於更多的像素px,因為像素在高清屏上變小,所以pt還是固定的。

7. dp:長度(Android)

(Density-independent pixel) 是安卓開發用的長度單位。

根據不同的屏幕解析度,與px有不同的倍數關系。規定:1dp等於屏幕像素密度為160ppi時1px的長度,因此dp在整個系統大小是固定的。公式:1dp=(屏幕ppi/ 160)px。

1dp等於屏幕像素密度為160ppi時1px的長度,即,在mdpi時,1dp = 1px。 以mdpi為標准,這些屏幕的密度值比為: ldpi : mdpi : hdpi : xhdpi : xxhdpi = 0.75 : 1 : 1.5 : 2 : 3。android中清屏1dp=1px,高清屏1dp=1.5px,超清屏1dp=2px。

做設計時以xhdpi為模板, xhdpi條件下1dp=2px,標注長度的時候,將長度像素除以2即為dp值,這樣方便和開發溝通。

8. sp:大小(Android)

(scale-independent pixel) 安卓開發用的字體大小單位。

注意: dp和sp都是安卓開發的單位,dp是長度單位,sp是字體單位。一般情況下可認為sp=dp。

二、易混淆的點

px和dot

都是點的概念,px應用在電子顯示設備上,是顯示圖像的基本單位。dot應用在印刷行業,是列印圖片的基本單位。

ppi和dpi

ppi和dpi無關系,互不影響 。 ppi影響圖像的顯示尺寸,dpi影響圖像的列印尺寸。列印時可以讓數量上px=dot,則設計時在photoshop里設置的ppi大小,可以認為是dpi大小。

很多技術人員經常把ppi和dpi畫等號, 其實他們的物理意義不一樣,但是因為混淆的人多了,所以在電子屏幕顯示中提到的ppi和dpi我們可以認為是一樣的。

pt和dp

iOS系統的pt和Android系統的dp概念是相似的。

三、從問題入手深入理解概念

1.設計印刷品時,為什麼說在ps里設置的ppi沒有實際意義,但還是要設置呢?

首先我們要明白,列印的解析度dpi是由實際的列印機決定的,所以在ps里設置解析度根本沒有意義。但是我們可以預期列印效果,比如多大的解析度和尺寸,有了這兩個值就能確定像素量px,即,只要像素量滿足要求,就能列印出預期的效果。所以ps里設置解析度ppi是為了讓ps計算出像素量大小。

2.photoshop里,高ppi和低ppi畫布的顯示差別?

Photoshop里的顯示大小隻和圖像的像素量和顯示器解析度有關。顯示器是確定的,所以像素量越大,顯示尺寸越大。

3.photoshop里, 相同像素的圖像,高ppi圖像拖入到低ppi圖像里,高ppi的圖像變小, 為什麼?

因為拖入後,高ppi的文檔分辨變小,photoshop把圖像的像素按照ppi變小的比例變小。這樣里體現了不同ppi的圖像在photoshop里的轉換關系。

4.photoshop里,相同像素的圖像,低ppi圖像拖入高ppi圖像里,低ppi的圖像無變化,為什麼?

因為拖入後,低ppi的文檔分辨變大,photoshop把圖像的像素按照ppi變大的比例變大,這樣就超過了畫布尺寸,photoshop按照置入圖片的原理顯示,即按最大邊匹配。

5.使用軟體的方式,增加圖像的像素px,或者提高圖像的像素密度ppi,對圖像有什麼影響?

軟體增加圖片像素,圖片會變模糊,因為增加的不是有效像素,所謂高清圖是指包含有效像素多的圖片。顯示清晰度由顯示器本身決定,圖片的ppi沒有意義。

6.100*100px的圖片,ps改變它的ppi,會怎樣?

像素是確定的,即不會影響顯示,也不會影響印刷。

四、總結

1.手機設計稿

因為手機屏幕的ppi和英寸確定,那麼像素可計算出來,即px確定,只需設置ps的畫布像素px相同就可以了,ps里設置的ppi對手機設計稿而言並沒有什麼意義,可以隨便設置;手機只關注圖片的像素夠不夠,因為是按照手機1:1的像素設計。所以,適配高ppi手機的設計稿,修改ps的ppi是沒有用的,而應該按照高ppi的像素修改設計稿。

2.列印設計稿

列印尺寸和列印解析度300dpi確定, 但ps以px為單位,由公式dot=英寸*dpi,px=英寸*ppi,英寸相同, dpi=ppi=300,那麼數量上可以dot=px。ps的英寸和ppi確定, px也確定,但不能直接得出px數量,但是ps可直接設置厘米cm, 那就只需要設置寬高的厘米和解析度300ppi=118.11像素/厘米,就可以間接設置所需的像素量,這就能保證300dpi清晰度和列印尺寸。(設置300dpi時ps會自動轉化為118.11像素/厘米)

㈧ 圖解android開發中dp和px的區別

px是像素,dp是密度比,如果你是安卓開發人員建議使用dp。

㈨ Android中解析度,DPI,DP與PX對應關系

解析度就是手機屏幕的像素點數。一般為屏幕的「寬×高」,例如解析度有720×1280的手機設備,表示此屏幕在寬度方向有720個像素點,在高度方向有1280個像素點。

按屏幕對角測量的實際物理尺寸。為簡便起見,Android 將所有實際屏幕尺寸分組為四種通用尺寸:小、 正常、大和超大,以英寸(inch)為單位。例如有個5寸的手機設備,是指對角線的尺寸,5寸×2.54厘米/寸=12.7厘米。

就是每英寸的像素點數,數值越高當然顯示越清晰,通常 與「正常」或「高」密度屏幕相比,「低」密度屏幕在給定物理區域的像素較少。

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

大多數情況下,確保應用中的屏幕獨立性很簡單,只需以適當的密度獨立像素( dp 單位)或 "wrap_content" 指定所有 布局尺寸值。系統然後根據適用於當前屏幕密度的縮放比例適當地縮放點陣圖可繪制對象,以 適當的大小顯示。

如上表所示,現在我們在mdpi下設計了一個48x48的應用圖標,那麼在ldip下大小縮小0.75倍為36x36,在hdip下放大1.5倍為72x72,在xhdpi下放大2倍為96x96,在xxhdpi下放大3倍為144x144,在xxxhdpi下放大4倍為192x192.

android對於不同dpi設備提供了5個目錄存放圖片,使開發人員根據實際需要對圖片適配。一般情況需要UI根據一種DPI密度、或解析度的設備設計UI,根據不同dpi的比例出圖,一般需要xhdpi、xxhdpi兩套圖,即2x、3x圖。
計算相關公式:
px = dpValue * density + 0.5f;
dp = pxValue / density + 0.5f;

㈩ 新手Android中px=dp*(dpi/160)的解釋

在160dpi的手機上1px=1dp,這句話的以上是說,手機屏幕寬頻被分割成了160塊,每一塊有一個像素點,每一塊就是一個dp。 那麼1dp=1px

而320dpi的手機上,解析度是上一個手機的兩倍,手機屏幕寬頻也被分割成了160塊,每一塊有兩個像素點,每一塊也是一個dp,那麼1dp=2px

上面分析來自於android學習手冊,360手機助手中可以下載,裡面有108個android例子,源碼文檔都可在裡面看,下面是截圖

java">importandroid.content.Context;

publicclassDensityUtil{

/**
*根據手機的解析度從dp的單位轉成為px(像素)
*/
publicstaticintdip2px(Contextcontext,floatdpValue){
finalfloatscale=context.getResources().getDisplayMetrics().density;
return(int)(dpValue*scale+0.5f);
}

/**
*根據手機的解析度從px(像素)的單位轉成為dp
*/
publicstaticintpx2dip(Contextcontext,floatpxValue){
finalfloatscale=context.getResources().getDisplayMetrics().density;
return(int)(pxValue/scale+0.5f);
}
}

閱讀全文

與androiddppxdpi相關的資料

熱點內容
伺服器未響應怎麼解決手機 瀏覽:184
程序員回到古代 瀏覽:402
軟體合並一個文件夾 瀏覽:657
設置Android程序圖標 瀏覽:365
app哪個局 瀏覽:904
源碼編輯器中怎麼保存 瀏覽:463
python背景圖片代碼 瀏覽:448
3D卡片下載哪個App 瀏覽:532
如何用伺服器登錄微信 瀏覽:841
html5移動開發pdf下載 瀏覽:525
如何查看png圖片是否加密 瀏覽:821
php遞歸例子 瀏覽:190
伺服器參數配置未響應是什麼意思 瀏覽:603
pythonchardet模塊 瀏覽:751
添加gm命令 瀏覽:662
rsa加密碼亂碼 瀏覽:758
網站伺服器需要租什麼 瀏覽:999
c語言常用排序演算法 瀏覽:824
pythonhtml文件上傳 瀏覽:525
dosat命令執行exe 瀏覽:95