ActivityのDisplayMetrics
2429 ワード
DisplayMetrics dm = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(dm);
screenWidth = dm.widthPixels;
screenHeight = dm.heightPixels;
density = dm.density;
densityDpi = dm.densityDpi;
scaledDensity = dm.scaledDensity;
DisplayMetrics metrics = dm;
Log.i("haier_home", "metrics::density=" + metrics.density
+", densityDpi="+metrics.densityDpi
+", heightPixels="+metrics.heightPixels
+", widthPixels="+metrics.widthPixels
+", scaledDensity="+metrics.scaledDensity
+", xdpi="+metrics.xdpi
+", ydpi="+metrics.ydpi);
プログラムを実行してlogログを印刷する
10-20 21:42:36.735: INFO/haier_home(7610): metrics::density=1.5, densityDpi=240, heightPixels=854, widthPixels=480, scaledDensity=1.5, xdpi=239.05882, ydpi=243.72585
metrics = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(metrics);
density = metrics.density;
Log.i("smart_home", "metrics::density=" + metrics.density
+", densityDpi="+metrics.densityDpi
+", heightPixels="+metrics.heightPixels
+", widthPixels="+metrics.widthPixels
+", scaledDensity="+metrics.scaledDensity
+", xdpi="+metrics.xdpi
+", ydpi="+metrics.ydpi);
プログラムを実行してlogログを印刷する
10-20 21:50:48.555: INFO/smart_home(8110): metrics::density=1.5, densityDpi=240, heightPixels=569, widthPixels=320, scaledDensity=1.5, xdpi=239.05882, ydpi=243.72585
AndroidManifestでxmlファイルに要素support-screensを追加
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true" />
プログラムを実行してlogログを印刷する
10-20 22:08:50.015: INFO/SmartHomeActivity(8948): metrics::density=1.5, densityDpi=240, heightPixels=854, widthPixels=480, scaledDensity=1.5, xdpi=239.05882, ydpi=243.72585
3日近く同じ携帯電話がなぜDisplayMetricsオブジェクトのheightPixelsとwidthPixelsが異なるのか分からなかった.