了解開發手機的各項引數之顯示屏

2021-06-28 14:31:43 字數 1600 閱讀 5203

所以,讓我們從程式設計師的角度來了解一下手機顯示屏的引數.

public class mainactivity extends activity 

//displaymetrics是乙個描述顯示屏一般資訊(大小,密度,字型縮放等)的結構體

displaymetrics dm = new displaymetrics();

d.getmetrics(dm);

//螢幕寬和高,單位是畫素

int width = dm.widthpixels;

int height = dm.heightpixels;

//螢幕每英吋畫素點

float xdpi = dm.xdpi;

float ydpi = dm.ydpi;

//計算寬和高是多少英吋

float xinch = width / xdpi;

float yinch = height / ydpi;

//計算顯示屏是多少英吋

double screeninch = math.sqrt(xinch * xinch + yinch * yinch);

string sscreeninch = string.format("螢幕是 %.1f 英吋", screeninch);

tv = (textview)findviewbyid(r.id.show);

tv.settext(sb.tostring());}}

下面是執行截圖:

看到這些引數,應該有人已經猜到我用的是mx3了,吐槽下,手機太不經摔了,2次就摔花屏了

下面一一來說下引數的意思:

1. real 1080 x 1800 

這個簡單,寬1080畫素  高1800畫素

2.density 440 (415.636 x 415.636)dpi  (dpi: dots per inch)

通用的演算法是這樣的,

畫素密度density =  開方(1080平方+1800平方) / 螢幕英吋(這裡是5.1)

那麼結果是: 約等於412 dpi

難道是我數學不好?

換個方向算,若要density = 440,那麼,計算過程應該是這樣:

開方(1080平方+1920平方) / 5英吋 = 440虛假宣傳

3.scaleddensity = 2.75

這個和開發就關係很大了,因為已知 螢幕畫素密度是"440dpi"

那麼 440 / 160 = 2.75 

為什麼是除以160呢?

安卓規定,

螢幕密度是160dpi時 , 1dip = 1     px;

螢幕密度是240dpi時 , 1dip = 1.5 px;

螢幕密度是320dpi時 , 1dip = 2    px;

最後,算一下我這個手機螢幕寬高各是多少dp吧:

寬 :   1080 / 2.75 = 393 dp

高:    1800 / 2.75 = 655 dp

當然,實際計算布局高度的時候,還要減去通知欄和標題欄高度.

Android開發 手機適配之values目錄

values目錄是用來存放colors.xml,dimens.xml,strings.xml等數值檔案,同時可以根據螢幕解析度 語言 api等設定對values目錄進行分類,特定的values目錄能夠滿足特定的裝置進行載入。values ldpi 240 x 320 px values mdpi 3...

HTML5開發手機應用 viewport的作用

在用html5開發手機應用或手機網頁時,之間加上如下視區 我們來看看頁面加上強制視區大小命令後效果怎麼樣?如下圖所示 那麼有沒有更好的方法呢?比如說我們自動檢測移動裝置螢幕大小,然後讓內容自適應。看下面的 device width將自動檢測移動裝置的螢幕寬度 在用html5開發手機應用或手機網頁時,...

5款開發手機應用的傻瓜式APP開發工具

每項特色功能都帶有說明並可預覽應用內整合的實際例子的效果,而且還可預覽 和通過郵件傳送 中包含注釋和解釋,您可對其進行修改滿足您應用程式的需要。對於想要通過強大的功能增強創意的ios開發人員和ios平台開發新手,該應用都是必備應用。注意 第二步來到tab版面,這是比較重要的乙個地方,設定你所製作的應...