Androidで画面密度をプログラム的に取得するには?質問する

Androidで画面密度をプログラム的に取得するには?質問する

Android でプログラム的に画面密度を取得するにはどうすればよいですか?

つまり、現在のデバイスの画面 dpi を見つけるにはどうすればいいのでしょうか?

ベストアンサー1

ディスプレイ上の情報は、ディスプレイメトリック構造体:

DisplayMetrics metrics = getResources().getDisplayMetrics();

Android は直接ピクセル マッピングを使用しませんが、量子化された密度非依存ピクセル値をいくつか使用し、実際の画面サイズに合わせて拡大縮小します。そのため、プロパティは定数( 、、、、、またはdpi )metrics.densityDpiのいずれかになります。DENSITY_xxx120160213240320480640

実際のLCD ピクセル密度が必要な場合(OpenGL アプリケーションなど) 、水平密度と垂直密度のそれぞれプロパティmetrics.xdpiとプロパティから取得できます。metrics.ydpi

4より前のAPIレベルをターゲットにしている場合、metrics.densityプロパティは基準密度(160dpi)からの浮動小数点スケーリング係数です。現在提供されている同じ値はmetrics.densityDpi計算できます。

int densityDpi = (int)(metrics.density * 160f);

おすすめ記事