當前位置:首頁 » 安卓系統 » androiddp與px轉換

androiddp與px轉換

發布時間: 2022-07-30 08:52:23

⑴ dp和px之間的換算公式

dp和px的換算公式 :
dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。
sp:Scale-independent pixels,它是安卓的字體單位,以160PPI屏幕為標准,當字體大小為 100%時, 1sp=1px。
dp也就是dip:device independent pixels(設備獨立像素)。
dp是一種與密度無關的像素單位,在每英寸160點的屏幕上,1dp = 1px。
px(像素):屏幕上的點。

⑵ 新手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);
}
}

⑶ 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 屏幕適配ui設置px怎麼轉換成dp

/**
* 根據手機的解析度從 dp 的單位 轉成為 px(像素)
*/
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}

/**
* 根據手機的解析度從 px(像素) 的單位 轉成為 dp
*/
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}

⑸ 在ui入門學習中,dp和 px怎麼換算

dp和px的換算公式 :
dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。
sp:Scale-independent pixels,它是安卓的字體單位,以160PPI屏幕為標准,當字體大小為 100%時, 1sp=1px。

dp也就是dip:device independent pixels(設備獨立像素)。
dp是一種與密度無關的像素單位,在每英寸160點的屏幕上,1dp = 1px。

px(像素):屏幕上的點。

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

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,系統會根據屏幕密度的變化自動進行轉換.

⑺ Android UI設計長度單位怎麼換算

px :是屏幕的像素點
in :英寸
mm :毫米
pt :磅,1/72 英寸
dp :一個基於density的抽象單位,如果一個160dpi的屏幕,1dp=1px
dip :等同於dp
sp :同dp相似,但還會根據用戶的字體大小偏好來縮放。
建議使用sp作為文本的單位,其它用dip
針對dip和px 的關系,做以下概述:
QVGA屏density=120; QVGA(240*320)
HVGA屏density=160; HVGA(320*480)
WVGA屏density=240; WVGA(480*800)
WQVGA屏density=120 WQVGA(240*400)
density值表示每英寸有多少個顯示點,與解析度是兩個概念。
不同density下屏幕解析度信息,以480dip*800dip的 WVGA(density=240)為例

density=120時

屏幕實際解析度為240px*400px (兩個點對應一個解析度)

狀態欄和標題欄高各19px或者25dip

橫屏是屏幕寬度400px 或者800dip,工作區域高度211px或者480dip

豎屏時屏幕寬度240px或者480dip,工作區域高度381px或者775dip

density=160時

屏幕實際解析度為320px*533px (3個點對應兩個解析度)

狀態欄和標題欄高個25px或者25dip

橫屏是屏幕寬度533px 或者800dip,工作區域高度295px或者480dip

豎屏時屏幕寬度320px或者480dip,工作區域高度508px或者775dip

density=240時

屏幕實際解析度為480px*800px (一個點對於一個解析度)

狀態欄和標題欄高個38px或者25dip

橫屏是屏幕寬度800px 或者800dip,工作區域高度442px或者480dip

豎屏時屏幕寬度480px或者480dip,工作區域高度762px或者775dip

apk的資源包中

當屏幕density=240時,使用hdpi 標簽的資源

當屏幕density=160時,使用mdpi標簽的資源

當屏幕density=120時,使用ldpi標簽的資源。

不加任何標簽的資源是各種解析度情況下共用的。

布局時盡量使用單位dip,少使用px

dp與px換算公式:
pixs =dips * (densityDpi/160).
dips=(pixs*160)/densityDpi

dp這個單位可能對web開發的人比較陌生,因為一般都是使用px(像素)
但是,現在在開始android應用和游戲後,基本上都轉換成用dp作用為單位了,因為可以支持多種解析度的手機.

以下是這兩個單位的概念:
px (pixels)像素 –一個像素通常被視為圖像的最小的完整采樣,這個用的比較多,特別是web開發,頁面基本都是使用像素作為單位的.
dip或dp (device independent pixels)設備獨立像素 — 這個和設備硬體有關,一般我們為了支持手機上多種解析度,如WVGA、HVGA和QVGA,都會使用dip作為長度的單位
在Android開發我們一般都可以不需要使用px的,但是某一些控制項的屬性沒有直接支持dip,像下面的代碼
android.view.ViewGroup.LayoutParams.height
android.view.ViewGroup.LayoutParams.width
上面這兩個屬性的單位為像素,但是為了兼容多種解析度的手機,我們需要最好使用dip,時候我們可以調用以下的代碼進行轉換.
int heightPx= DisplayUtil.dip2px(this, 33);
mTabHost.getTabWidget().getChildAt(i).getLayoutParams().height = heightPx;
以上代碼可以在我另一篇文章看得到.該功能是設置Tab的高度,單位是像素.以上的單位轉換是為了支持多解析度手機的.

public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}

public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}

⑻ 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、sp、px的轉換關系

PPI = Pixels per inch,每英寸上的像素數,即 "像素密度"
xhdpi: 2.0
hdpi: 1.5
mdpi: 1.0 (baseline)
ldpi: 0.75

drawable-ldpi、drawable-mdpi、drawable-hdpi 精度分別為低、中(android默認)、高。
對應的圖片大小為:36x36、48x48、72x72。
xxhdpi: 144*144
xhdpi:96*96
hdpi:72*72
mdpi:48*48
ldpi:36*36

dp是虛擬像素,在不同的像素密度的設備上會自動適配,比如:
在320x480解析度,像素密度為160,1dp=1px
在480x800解析度,像素密度為240,1dp=1.5px
計算公式:1dp*像素密度/160 = 實際像素數
drawable- hdpi、drawable- mdpi、drawable-ldpi的區別:
(1)drawable-hdpi裡面存放高解析度的圖片,如WVGA (480x800),FWVGA (480x854)
(2)drawable-mdpi裡面存放中等解析度的圖片,如HVGA (320x480)
(3)drawable-ldpi裡面存放低解析度的圖片,如QVGA (240x320)
系統會根據機器的解析度來分別到這幾個文件夾裡面去找對應的圖片。
ppi的運算方式是:
PPI = √(長度像素數² + 寬度像素數²) / 屏幕對角線英寸數
dp:Density-independent pixels,以160PPI屏幕為標准,則1dp=1px,
dp和px的換算公式 :
dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。

sp:Scale-independent pixels,它是安卓的字體單位,以160PPI屏幕為標准,當字體大小為 100%時, 1sp=1px。
sp 與 px 的換算公式:sp*ppi/160 = px

總結得出:
px = dp*ppi/160
dp = px / (ppi / 160)
px = sp*ppi/160
sp = px / (ppi / 160)

⑽ 安卓系統中dp,px,pt,sp 的區別 以及dp 和 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。

熱點內容
視頻聊天室源碼php 發布:2025-01-21 01:39:29 瀏覽:938
游戲腳本xp 發布:2025-01-21 01:25:48 瀏覽:209
cfa建模需要什麼電腦配置 發布:2025-01-21 01:16:41 瀏覽:96
配置獲取異常怎麼辦 發布:2025-01-21 01:16:29 瀏覽:641
植發都加密嗎 發布:2025-01-21 01:16:28 瀏覽:735
工商保障卡原始密碼是什麼 發布:2025-01-21 01:09:33 瀏覽:786
sqlserver2012sp 發布:2025-01-21 01:06:23 瀏覽:888
驚變在線看ftp 發布:2025-01-21 01:06:20 瀏覽:233
用近似歸演算法 發布:2025-01-21 00:51:56 瀏覽:517
php顯示資料庫中圖片 發布:2025-01-21 00:44:34 瀏覽:146