所以,讓我們從程式設計師的角度來了解一下手機顯示屏的引數.
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版面,這是比較重要的乙個地方,設定你所製作的應...