激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Android - android計(jì)算pad或手機(jī)的分辨率/像素/密度/屏幕尺寸/DPI值的方法

android計(jì)算pad或手機(jī)的分辨率/像素/密度/屏幕尺寸/DPI值的方法

2020-12-31 18:08Android教程網(wǎng) Android

本文將介紹手機(jī)布局/界面設(shè)計(jì)/分辨率/密度相關(guān),接下來介紹android計(jì)算pad或手機(jī)的分辨率像素等等的方法,感興趣的朋友可以了解下,希望本文可以幫助你

手機(jī)分辨率基礎(chǔ)知識(shí)(dpi,dip計(jì)算)

1.術(shù)語和概念

術(shù)語

說明

備注

screen size(屏幕尺寸)

指的是手機(jī)實(shí)際的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸

摩托羅拉milestone手機(jī)是3.7英寸

aspect ratio(寬高比率)

指的是實(shí)際的物理尺寸寬高比率,分為long和nolong

milestone是16:9,屬于long

resolution(分辨率)

和電腦的分辨率概念一樣,指手機(jī)屏幕縱、橫方向像素個(gè)數(shù)

milestone是854*480

dpi(dot per inch)

每英寸像素?cái)?shù),如120dpi,160dpi等,假設(shè)qvga(320*240)分辨率的屏幕物理尺寸是(2英寸*1.5英寸),dpi=160

可以反映屏幕的清晰度,用于縮放ui的

density(密度)

屏幕里像素值濃度,resolution/screen size可以反映出手機(jī)密度,

 

density-independent pixel (dip)

指的是邏輯密度計(jì)算單位,dip和具體像素值的對(duì)應(yīng)公式是dip/pixel=dpi值/160,也就是px = dp * (dpi / 160)

 

2. dpi值計(jì)算

比如:計(jì)算wvga(800*480)分辨率,3.7英寸的密度dpi,如圖1所示

android計(jì)算pad或手機(jī)的分辨率/像素/密度/屏幕尺寸/DPI值的方法

               圖1 

diagonal pixel表示對(duì)角線的像素值(=android計(jì)算pad或手機(jī)的分辨率/像素/密度/屏幕尺寸/DPI值的方法),dpi=933/3.7=252

3.手機(jī)屏幕的分類

3.1根據(jù)手機(jī)屏幕密度(dpi)或屏幕尺寸大小分為以下3類,如圖2所示

android計(jì)算pad或手機(jī)的分辨率/像素/密度/屏幕尺寸/DPI值的方法                         

                          圖2

3. 2手機(jī)屏幕分類和像素密度的對(duì)應(yīng)關(guān)系如表1所示:

 

low density (120), ldpi

medium density (160), mdpi

high density (240), hdpi

small screen

qvga (240x320)

 

 

normal screen

wqvga400 (240x400)wqvga432 (240x432)

hvga (320x480)

wvga800 (480x800)wvga854 (480x854)

large screen

 

wvga800* (480x800)wvga854* (480x854)

 

                                      表1

3.3手機(jī)尺寸分布情況(http://developer.android.com/resources/dashboard/screens.html)如圖3所示,目前主要是以分辨率為800*480和854*480的手機(jī)用戶居多

android計(jì)算pad或手機(jī)的分辨率/像素/密度/屏幕尺寸/DPI值的方法

                                                        圖3

   從以上的屏幕尺寸分布情況上看,其實(shí)手機(jī)只要考慮3-4.5寸之間密度為1和1.5的手機(jī)

4 ui設(shè)計(jì)

從開發(fā)角度講,應(yīng)用程序會(huì)根據(jù)3類android手機(jī)屏幕提供3套u(yù)i布局文件,但是相應(yīng)界面圖標(biāo)也需要提供3套,如表2所示

icon type

standard asset sizes (in pixels), for generalized screen densities

 

low density screen (ldpi)

medium density screen (mdpi)

high density screen (hdpi)

launcher

36 x 36 px

48 x 48 px

72 x 72 px

menu

36 x 36 px

48 x 48 px

72 x 72 px

status bar

24 x 24 px

32 x 32 px

48 x 48 px

tab

24 x 24 px

32 x 32 px

48 x 48 px

dialog

24 x 24 px

32 x 32 px

48 x 48 px

list view

24 x 24 px

32 x 32 px

48 x 48 px

                                        表2

5 如何做到自適應(yīng)屏幕大小呢?

1)界面布局方面 

   需要根據(jù)物理尺寸的大小準(zhǔn)備5套布局,layout(放一些通用布局xml文件,比如界面中頂部和底部的布局,不會(huì)隨著屏幕大小變化,類似windos窗口的title bar),layout-small(屏幕尺寸小于3英寸左右的布局),layout-normal(屏幕尺寸小于4.5英寸左右),layout-large(4英寸-7英寸之間),layout-xlarge(7-10英寸之間)

2)圖片資源方面 

  需要根據(jù)dpi值準(zhǔn)備5套圖片資源,drawable,drawalbe-ldpi,drawable-mdpi,drawable-hdpi,drawable-xhdpi

android有個(gè)自動(dòng)匹配機(jī)制去選擇對(duì)應(yīng)的布局和圖片資源

手機(jī)的分辨率 像素 密度和 屏幕尺寸是我們經(jīng)常聽到的字眼,它們之間的關(guān)系如下

分辨率是指屏幕上有橫豎各有多少個(gè)容器點(diǎn),每個(gè)容器點(diǎn)是用于容納一個(gè)像素的。

像素嚴(yán)格來說是指用于圖片上的,圖片上的像素點(diǎn)越多,圖片就越顯的清晰,當(dāng)然也會(huì)越大。

手機(jī)可以有相同的分辨率,但屏幕尺寸可以不相同,例如3.7英寸的屏幕可以是320*480的分辨率,5.1英寸的屏幕也可以是320*480的分辨率,那這2個(gè)屏幕在顯示時(shí)有什么區(qū)別呢?

舉個(gè)例子:如果a手機(jī)屏幕寬度是5cm,b手機(jī)寬度是10cm,寬度分辨率都是320,那么顯示同一張圖片時(shí),b手機(jī)上的圖片就會(huì)顯的大一點(diǎn),并且沒有a手機(jī)上的清晰。為什么呢,這就是我們常見的密度(dpi)概念,即每英寸多少個(gè)點(diǎn)。本身一行5cm有320個(gè)點(diǎn),dpi大約是150,現(xiàn)在是一行10cm有320個(gè)點(diǎn),密度大約是75。密度大為減少,所以b手機(jī)顯示的圖片會(huì)變大,不清晰。就像我們使用android screen monitor在電腦上顯示手機(jī)屏幕一樣,總感覺在電腦上顯示時(shí)有點(diǎn)大,這就是因?yàn)槟汶娔X的分辨率密度沒有手機(jī)的分辨率密度大導(dǎo)致的,可以把電腦的分辨率調(diào)大一點(diǎn)讓電腦屏幕密度和手機(jī)密度一致。

換算方式:

72像素/英寸=28.346像素/厘米

300像素/英寸=118.11像素/厘米

1 厘米=0.3937 英寸

1 英寸=2.54 厘米

像素不能直接換算成英寸、厘米,要在dpi下才能換算!

以常見1024像素對(duì)比

1024像素=3.413英寸=8.67厘米        (300像素/英寸dpi    每英寸≈0.003333像素),所以1024像素的厘米尺寸就是:1024*0.003333*2.54

1024像素=14.222英寸=36.12厘米   (72像素/英寸dpi    每英寸≈0.013889像素),所以1024像素的厘米尺寸就是:1024*0.013889*2.54

    提起分辨率,我們需要了解兩個(gè)概念,圖像分辨率和輸出分辨率。

    圖像分辨率是每英寸的像素?cái)?shù),以ppi為單位,圖像分辨率又常常被表示成每一個(gè)方向上的總像素?cái)?shù)量,比如640×480像素、1280×960像素等。而決定圖像輸出質(zhì)量的是圖像的輸出分辨率,描述的是設(shè)備輸出圖像時(shí)每英寸可產(chǎn)生的點(diǎn)數(shù)(dpi),以dpi為單位,兩者有聯(lián)系但并不總是相等的。

dpi (dot per inch)輸出分辨率

    打印機(jī)分辨率又稱為輸出分辨率,是指在打印輸出時(shí)橫向和縱向兩個(gè)方向上每英寸最多能夠打印的點(diǎn)數(shù),通常以“點(diǎn)/英寸”即dpi(dot per inch)表示。而所謂最高分辨率就是指打印機(jī)所能打印的最大分辨率,也就是所說的打印輸出的極限分辨率。平時(shí)所說的打印機(jī)分辨率一般指打印機(jī)的最大分辨率,目前一般激光打印機(jī)的分辨率均在600×600dpi以上。

    dpi是“dot per inch”的縮寫。顧名思義,就是指在每英寸長度內(nèi)的點(diǎn)數(shù)。通常,我們都使用dpi來作為掃描器和打印機(jī)的解析度單位,數(shù)值越高表示解析度越高。目前,市面上出售掃描器的光學(xué)解析度主要有600×1200 dpi和1200×2400 dpi兩種。掃描器的光學(xué)解析度由兩個(gè)數(shù)字構(gòu)成,是因?yàn)闄M向解析度和縱向解析度不同。較小的數(shù)字通常為縱向解析度,即我們一般區(qū)分掃描器解析度用的數(shù)值。也就是說,600×1200 dpi的掃描器,我們通常簡稱為600 dpi。

    電腦顯示器的解析度約為72dpi,這個(gè)數(shù)值其實(shí)是這樣計(jì)算出來的:以一部15寸的電腦顯示器為例,可視面積的水平長度大約為11.2寸,如果顯示模式是800×600,那么解析度就是800/11.2=71.4。如果是17寸電腦顯示器,以1024×768的顯示模式來看,解析度就變成1024/12.8=80了。

像素(pixel)

    對(duì)于計(jì)算機(jī)的屏幕設(shè)備而言,像素(pixel)或者說px是一個(gè)最基本的單位,就是一個(gè)點(diǎn)。其它所有的單位,都和像素成一個(gè)固定的比例換算關(guān)系。所有的長度單位基于屏幕進(jìn)行顯示的時(shí)候,都統(tǒng)一先換算成為像素的多少,然后進(jìn)行顯示。所以,就計(jì)算機(jī)的屏幕而言,相對(duì)長度和絕對(duì)長度沒有本質(zhì)差別。任何單位其實(shí)都是像素,差別只是比例不同。

    如果把討論擴(kuò)展到其它輸出設(shè)備,比如打印機(jī),基本的長度單位可能不是像素,而是其它的和生活中的度量單位一致的單位了。

    css絕對(duì)長度單位是對(duì)于輸出設(shè)備(output device)而言的。拿pt來說,這是一個(gè)在文字排版工具(word,adobe等)中非常常用的字體單位,不管你的顯示器分辨率是1024*768,還是800*600,同一篇文檔打印在紙面上的結(jié)果是一樣的。

    寫網(wǎng)頁用哪個(gè)長度單位更好,是px還是pt呢?

    我個(gè)人比較偏向px,因?yàn)閜x能夠精確地表示元素在屏幕中的位置和大小,網(wǎng)頁主要是為了屏幕顯示,而不是為了打印等其它需要的。

css相對(duì)長度單位(relative length unit)

    css相對(duì)長度單位中的相對(duì)二字,表明了其長度單位會(huì)隨著它的參考值的變化而變化,不是固定的。以下是css相對(duì)長度單位列表:

    css相對(duì)長度單位

    說明:

    em    元素的字體高度the height of the element s font

    ex    字母x的高度the height of the letter "x"

    px    像素pixels

    %    百分比percentage

css絕對(duì)長度單位(absolute length unit)

    絕對(duì)長度單位是一個(gè)固定的值。比如我們常用的有mm,就是毫米的意思。以下是css絕對(duì)長度單位列表:

    css絕對(duì)長度單位

    說明

    in      英寸inches (1英寸 = 2.54 厘米)

    cm    厘米centimeters

    mm  毫米millimeters

    pt    點(diǎn)points (1點(diǎn) = 1/72英寸)

    pc    皮卡picas (1皮卡 = 12 點(diǎn))

    像素是相對(duì)于顯示器屏幕分辨率而言的。譬如,windows的用戶所使用的分辨率一般是96像素/英寸。而mac的用戶所使用的分辨率一般是72像素/英寸。所以在windows的css中dpi為 96像素/英寸。

另附上對(duì)照表:

常見照片尺寸、像素及打印尺寸對(duì)照表(實(shí)用)

英寸

照片規(guī)格

厘米

像素

數(shù)碼相機(jī)類型

打印尺寸

分辨率:300dpi

1寸

2.5×3.5cm

413×295

/

/

身份證大頭照

3.3×2.2

390×260

/

/

2

3.5×5.3cm

626×413

/

/

小2寸(護(hù)照)

4.8×3.3cm

567×390

/

/

5寸

12.7×8.9

1200×840以上

100萬像素

/

6寸

15.2×10.2

1440×960以上

130萬像素

/

7寸7×5

17.8×12.7

1680×1200以上

200萬像素

12.7x17.7

8寸8×6

20.3×15.2

1920×1440以上

300萬像素

15.2x20.3

10寸10×8

25.4×20.3

2400×1920以上

400萬像素

20.3x25.4

12寸12×10

30.5×20.3

2500×2000以上

500萬像素

25.4x30.5

15寸15×10

38.1×25.4

3000×2000

600萬像素

25.4x38.1

最近做項(xiàng)目發(fā)現(xiàn),同樣的分辨率2臺(tái)機(jī)器,某個(gè)界面的樣式就是不一樣,經(jīng)過多次測試發(fā)現(xiàn),原來第一臺(tái)pad(lenovo a1_07)的密度為1.5,轉(zhuǎn)換成dpi是240,屬于高密度;另一臺(tái)pad的密度為1,屬于中等密度,轉(zhuǎn)換成dpi就是160,應(yīng)該屬于中等密度 
這就發(fā)現(xiàn)問題了, 解決方法: 
應(yīng)該在values文件夾下面分別放置values-hdpi, values-mdpi分別對(duì)應(yīng)的樣式,就ok了 
以下是學(xué)習(xí)資料 
screen resolution 
把設(shè)備上的物理dpi 用乘法轉(zhuǎn)換成 dips 
androidname   approx. resolution   multiply by this get dips 
ldpi          ~120 dpi              1.333 
mdpi          ~160 dpi              1.0 (基線密度) 
tvdpi        ~213 dpi               0.751 
hdpi         ~240 dpi               0.67 
xhdpi        ~320 dpi               0.5 

dpi:每英寸像素?cái)?shù)(密度*160) 
density:密度 

手機(jī)像素密度(density)實(shí)際上是以單位英寸160個(gè)像素作為參考標(biāo)準(zhǔn),主要密度有0.75,1,1.5和2,當(dāng)密度為2時(shí)就表示1英寸有320個(gè)像素,android中通過代碼可以獲取到屏幕的像素值和密度,根據(jù)這些值就可以反向算出屏幕的物理尺寸 

屏幕尺寸=屏幕對(duì)角線的像素值/(密度*160)=  [(長的平方+寬的平方)開根號(hào)] / (密度*160)  

實(shí)踐過程: 

由于android設(shè)備中獲取的密度density本身是個(gè)約等于的數(shù)值,比如計(jì)算出密度的準(zhǔn)確值density=1.575,實(shí)際在代碼中讀到的density=1.5, 需要實(shí)現(xiàn)一個(gè)簡單的計(jì)算屏幕尺寸的應(yīng)用在不同設(shè)備上驗(yàn)證物理尺寸準(zhǔn)確程度,具體代碼如下: 

displaymetrics metric = new displaymetrics(); 
        getwindowmanager().getdefaultdisplay().getmetrics(metric); 
        int width = metric.widthpixels;  // 屏幕寬度(像素) 
        int height = metric.heightpixels;  // 屏幕高度(像素) 
        float density = metric.density;  // 屏幕密度(0.75 / 1.0 / 1.5) 
        int densitydpi = metric.densitydpi;  // 屏幕密度dpi(120 / 160 / 240) 
       double diagonalpixels = math.sqrt(math.pow(width, 2)+math.pow(height, 2)) ; 
double screensize = diagonalpixels/(160*density) ; 

有可能上面的計(jì)算屏幕的尺寸不是太準(zhǔn)確

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 我爱我色成人网 | 国产羞羞网站 | 欧美成年性h版影视中文字幕 | 成人黄色网战 | 精品一区二区三区中文字幕老牛 | 久久逼逼 | 国产午夜精品理论片a级探花 | 国产精品久久久久久影视 | 在线观看日韩中文字幕 | 91久久久国产精品 | 久久中文一区 | 黄色片免费看看 | 毛片免费在线播放 | 日本看片一区二区三区高清 | 中文字幕极速在线观看 | chinese xvideos gay| 九九久久视频 | 在线免费观看日韩视频 | 欧美大屁股精品毛片视频 | 国产精品久久久久久久久岛 | 亚洲电影在线观看高清免费 | 精品国产91久久久久久久妲己 | 欧美人成在线视频 | 精品三级内地国产在线观看 | 最新毛片在线观看 | 国产免费一区二区三区 | 日本精品二区 | 国产一级桃视频播放 | 夜添久久精品亚洲国产精品 | 特级无码毛片免费视频尤物 | 国产日韩大片 | 日本在线视频免费观看 | 看免费黄色大片 | 一级免费在线 | 91成人免费网站 | 一级黄色a视频 | 欧美一级毛片美99毛片 | 免费看性xxx高清视频自由 | 播色网电影网 | 色淫网站免费视频 | 羞羞视频免费观看入口 |