對於一個 Android 程式開發者來說,如何得到使用者螢幕的真實尺寸是一件很重要的事,由其要對不同的裝置來做不同的設計,但是在 Android 中,似乎沒有針對這個來做 api,於是就興起了自己計算的念頭。而在這裡用到的技巧,是靠著「xdpi」和「ydpi」這兩個常數,分別代表著「每英吋的水平像素數」和「每英吋的垂直像素數」。

在求出 xdpi  和 ydpi 後,接著就是簡單的數學囉!四方形的對角線長度等於 「x 軸的平方 + y 軸的平方」再開根號,這樣就可以求出螢幕的真實尺寸,而這尺寸只是接近真實,並不等於裝置規格上的螢幕尺寸。

而以下為程式碼,若有需要再請拿走吧!

private double getScreenInch()
{
  DisplayMetrics dm = new DisplayMetrics();
  getWindowManager().getDefaultDisplay().getMetrics(dm);
  double screenInches 0;
  screenInches = Math.sqrt
                 (
                    Math.pow(dm.widthPixels/dm.xdpi,2)+ 
                    Math.pow(dm.heightPixels/dm.ydpi,2)
                 );
  Log.d("debug","Screen inches : " + screenInches);
  return screenInches;
}

 

Written by 

城市裡的小小迷僮工程師,喜歡用鍵盤記錄個人生活的點滴,身邊的人事物都我的靈感,用心踏出每個腳步,用文字灌溉《海芋小站》,用專業解決問題。

發表迴響