close

Android 一直以來都有個令人頭痛的問題
那就是螢幕的大小真是千奇百怪
也因此很多時候我們需要螢幕資訊來幫助我們建立畫面

 

那要如何得到呢?
請看下的 code

//取得螢幕寬高密度
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
Logger.e("screenWidth:" + dm.widthPixels + "  "
        +"screenHeight:" + dm.heightPixels + "\n"
        + "xdp(寬):" + dm.xdpi + "  "
        + "ydp(高):" + dm.ydpi + "\n"
        + "density:" + dm.density + "  "
        + "scaledDensity:" + dm.scaledDensity + "  "
        + "dpi:" + dm.densityDpi);

簡單的兩行 code 就可以得到我們要的資訊了
注意:getWindowManager() 是 Activity 的方法唷

 

下面是輸出的結果

 

那得到這些可以做什麼呢?
一般來說,我們開發時都會用 160dpi 來做基準
像我們的例子
480dpi / 160dpi = 密度就會等於 3
而寬高為 1080 * 1920 (px)
除以密度會得到 360 * 640 (dp) 注意單位唷

 

所以當我們在設計 ui 時
盡量用 dp 去做定義
因為 dp 能減少在不同螢幕間的差異喔

 

P.S.
大家還記得我們的 drawable 資料夾有分好幾個吧?
我們得到的 dpi 就對映著不同資料夾
有興趣的話請點擊下列標題

 

Willy's Fish教學筆記』Android Drawbale 螢幕適配介紹,什麼是 hdpi、mdpi、xhdpi、xxhdpi ?




 

 


arrow
arrow
    全站熱搜

    顏澤偉 發表在 痞客邦 留言(0) 人氣()