1. ホーム
  2. android

[解決済み] アンドロイドでプログラム的に画面密度を取得する?

2022-03-18 01:01:07

質問

アンドロイドで画面密度をプログラム的に取得する方法は?

つまり 現在のデバイスのスクリーンdpiを見つけるには?

解決方法は?

表示に関する情報は ディスプレイメトリクス 構造体を使用します。

DisplayMetrics metrics = getResources().getDisplayMetrics();

Androidは直接ピクセルマッピングを使用しませんが、量子化された一握りの密度独立ピクセル値を使用し、実際の画面サイズにスケーリングします。そのため metrics.densityDpi プロパティは DENSITY_xxx 定数 ( 120 , 160 , 213 , 240 , 320 , 480 または 640 dpi)を使用します。

が必要な場合は 実際 lcdのピクセル密度(おそらくOpenGLアプリのために)。 metrics.xdpimetrics.ydpi プロパティで、それぞれ水平方向と垂直方向の密度を指定します。

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

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