Androidアプリで複数の画面サイズのサポートに取り組んでおり、デバイスの物理的な画面サイズを知る必要があります。
Sony Ericsson X10で、物理的な画面の解像度と密度を照会し、画面サイズ(解像度/密度=サイズ)を計算しようとしていますが、結果は実際のサイズの約1.5倍になります。
コードは次のとおりです。
DisplayMetrics metrics = c.getResources().getDisplayMetrics();
mPhysicalScreenWidth = metrics.widthPixels / metrics.xdpi;
mPhysicalScreenHeight = metrics.heightPixels / metrics.ydpi;
Log.d(TAG, "DisplayMetrics: widthPixels=" + metrics.widthPixels + " xdpi=" + metrics.xdpi +
" heightPixels=" + metrics.heightPixels + " ydpi=" + metrics.ydpi);
Log.d(TAG, "Physical screen width=" + mPhysicalScreenWidth + "\", height=" + mPhysicalScreenHeight + "\"");
ログの出力:
DisplayMetrics: widthPixels=480 xdpi=160.41878 heightPixels=854 ydpi=159.49677
Physical screen width=2.9921684", height=5.3543406"
この実際のサイズはわずか2"(幅)x 3.5"(高さ)です!?
私は何か間違ったことをしていますか?
Android 1.6 SDKを使用しており、マニフェストのすべての<supports-screens>属性をtrueに設定しました。