Androidでプログラム的に画面密度を取得していますか?


516

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

つまり:現在のデバイスの画面dpiを見つける方法は?


9
多くの回答はを参照してgetDisplayMetrics().xdpiおり、デバイスの実際のdpiを返すことになっています。この値は、メーカーによってデバイス間で一貫して正しく設定されていないため、使用できないことに注意してください。悲しいが本当:実際のdpiに関する情報はありません。出典:groups.google.com/d/msg/android-developers/g56jV0Hora0/...
sulai

2
getResources().getDisplayMetrics().xdpiそしてgetResources().getDisplayMetrics().ydpiあなたを与えるだろう、実際の水平方向と垂直方向の密度、ほとんどのケースで異なっています、。
オメガ

回答:


526

DisplayMetrics構造体からディスプレイに関する情報を取得できます。

DisplayMetrics metrics = getResources().getDisplayMetrics();

Androidは直接ピクセルマッピングを使用しませんが、量子化された密度非依存ピクセル値をいくつか使用して、実際の画面サイズにスケーリングします。だから、metrics.densityDpiプロパティのいずれかになりますDENSITY_xxx定数(120160213240320480または640DPI)。

あなたが必要な場合は、実際の(おそらくOpenGLのアプリ用)LCDの画素密度をあなたからそれを得ることができますmetrics.xdpiし、metrics.ydpiそれぞれ水平方向と垂直方向の密度のプロパティ。

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

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

42
確かにこの記事は2年以上前からあるが、これは非常にこれを見つけた人には、この検索にはGoogleの上に来る最初の事である、あなたは、もはや160で乗算する必要はありません
roboguy12

5
どのバージョン以降ではなくなったのですか?
TacB0sS 2013

回答を更新して、人々が使用している可能性のある最新のAPIリビジョンに合わせました。
joshperry

6
注:代わりに、この新しいAPIが必要な場合があります。getWindowManager().getDefaultDisplay().getRealMetrics(metrics); これはAPI 17で正式に追加されましたが、試した4.0デバイスでも正しく機能することを知って驚きました。
benkc 14

2
また、getResources()。getDisplayMetrics()。densityDpi
amorenew

367

これも機能します:

 getResources().getDisplayMetrics().density;

これはあなたに与えるでしょう:

0.75-ldpi

1.0-mdpi

1.5-hdpi

2.0-xhdpi

3.0-xxhdpi

4.0-xxxhdpi

ここに画像の説明を入力してください

ref:密度

ここに画像の説明を入力してください

参照2


10
+1これは、直接アクセスできない場合に機能しますWindowManager(例:ローダー内)。ただ、乗算、それによって160
のMichałK

2
APIレベル16では、xxdpiが追加されました。これは、ここでは3.0に変換されます。
QED

3
これにより、1.3312501が得られtvdpiます。詳細についてtvdpiは、ここ
ドリ

2
Nexus 7は1.3を報告していますが、なぜブラケットが必要なのですか?
Neil

1
@selbie、あなたの電話は2つの定義された密度の中間を報告しているので、おそらくあなたの電話はより高品質のリソースを引き出し、スケーリングしています。
Sakiboy

145
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

switch(metrics.densityDpi) {
     case DisplayMetrics.DENSITY_LOW:
         break;

     case DisplayMetrics.DENSITY_MEDIUM:
         break;

     case DisplayMetrics.DENSITY_HIGH:
         break;
}

これはAPIレベル4以上で機能します。


Nexus 7のように、densityDpiを213と報告するデバイスをどのように手に入れますか
Neil

if-elseのように密度値間でif(metrics.densityDpi> DisplayMetrics.DENSITY_LOW && metrics.densityDpi <DisplayMetrics.DENSITY_MEDIUM)
Mitul Nakum

1
OR if(metrics.densityDpi <DisplayMetrics.DENSITY_LOW){} else if(metrics.densityDpi <DisplayMetrics。DENSITY_MEDIUM){} .....
Mitul Nakum

1
Neil、213はTV DPIと呼ばれ、そのDENSITY_TVの名前付き表示メトリック密度があります。
Andrew S

63

静的ヘルパーメソッドとしてのBlundellの答え:

private static String getDensityName(Context context) {
    float density = context.getResources().getDisplayMetrics().density;
    if (density >= 4.0) {
        return "xxxhdpi";
    }
    if (density >= 3.0) {
        return "xxhdpi";
    }
    if (density >= 2.0) {
        return "xhdpi";
    }
    if (density >= 1.5) {
        return "hdpi";
    }
    if (density >= 1.0) {
        return "mdpi";
    }
    return "ldpi";
}

tvdpi密度はどうですか?それは1.33だと思います
Anoop、

@AnoopssGoldenこれは実際には標準ではないので、必要に応じて追加できますが、答えに含める必要はないと思います。android docsから:「これは「プライマリ」密度グループとは見なされません。これは主にテレビ向けであり、ほとんどのアプリでは必要ありません。」
qwertzguy

ただし、Nexus 7デバイスはtvdpi密度グループに属しています。
Anoop、2014年

1
これは少し古いですが、追加するだけです。MDPIは、Nexus 7でほとんどの場合に機能する可能性がありますが、現在試行しているように、MDPIとして表示される画像は十分な大きさではありません。TVDPIを定義してから、サーバーに大きな画像サイズを要求する必要があります。あまり使用されない場合もありますが、MDPIがすべてを取得するわけではありません。
RED_ 2014

3
@Andrew Sさん、elseを使用してもコードの効率は変わりません。中括弧の削除はスタイルのみの問題であり、IMHOはコードの保守時にエラーを起こしやすくします。
qwertzguy 2015

45

これを試して:

DisplayMetrics dm = context.getResources().getDisplayMetrics();
int densityDpi = dm.densityDpi;

5
アクティビティではなくコンテキストに依存しているので、私はこれがずっと好きです。
greg7gkb 2012

同意しましたが、これはViewはるかに簡単に使用できます(必要な場所です)
Andrew Wyld

37

dpiを取得するには:

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

// will either be DENSITY_LOW, DENSITY_MEDIUM or DENSITY_HIGH
int dpiClassification = dm.densityDpi;

// these will return the actual dpi horizontally and vertically
float xDpi = dm.xdpi;
float yDpi = dm.ydpi;

4
dm.densityDpiは、DENSITY_LOWまたはDENSITY_MEDIUMまたはDENSITY_HIGHを返します。xhdpiはどうですか?DENSITY_XHIGHくらいありますか?
Eugene Chumak


34

ここに密度定数、ソースがあります:

ここに画像の説明を入力してください

標準密度に加えて、5つの中間密度があります。この事実を考慮すると、次のコードは完全に機能する例になります。

float density = getResources().getDisplayMetrics().density;

if (density == 0.75f)
{
    // LDPI
}
else if (density >= 1.0f && density < 1.5f)
{
    // MDPI
}
else if (density == 1.5f)
{
    // HDPI
}
else if (density > 1.5f && density <= 2.0f)
{
    // XHDPI
}
else if (density > 2.0f && density <= 3.0f)
{
    // XXHDPI
}
else
{
    // XXXHDPI 
}

または、次を使用して密度定数を見つけることができますdensityDpi

int densityDpi = getResources().getDisplayMetrics().densityDpi;

switch (densityDpi)
{
    case DisplayMetrics.DENSITY_LOW:
        // LDPI
        break;

    case DisplayMetrics.DENSITY_MEDIUM:
        // MDPI
        break;

    case DisplayMetrics.DENSITY_TV:
    case DisplayMetrics.DENSITY_HIGH:
        // HDPI
        break;

    case DisplayMetrics.DENSITY_XHIGH:
    case DisplayMetrics.DENSITY_280:
        // XHDPI
        break;

    case DisplayMetrics.DENSITY_XXHIGH:
    case DisplayMetrics.DENSITY_360:
    case DisplayMetrics.DENSITY_400:
    case DisplayMetrics.DENSITY_420:
        // XXHDPI
        break;

    case DisplayMetrics.DENSITY_XXXHIGH:
    case DisplayMetrics.DENSITY_560:
        // XXXHDPI
        break;
}

29

次の答えは、qwertzguyの答えに基づく小さな改善です。

double density = getResources().getDisplayMetrics().density;
if (density >= 4.0) {
   //"xxxhdpi";
}
else if (density >= 3.0 && density < 4.0) {
   //xxhdpi
}
else if (density >= 2.0) {
   //xhdpi
}
else if (density >= 1.5 && density < 2.0) {
   //hdpi
}
else if (density >= 1.0 && density < 1.5) {
   //mdpi
}

1
このコードはいくつかの他のもので実行でき、アンパサンドとその後の条件は冗長です。
Andrew S

1
@Andrew、訂正ありがとうございます。私はそれに応じて答えを編集しました。
サン

2
@Sanこれらの条件で&&は必要ありません。> =を一貫してチェックしている限り、trueである最初の条件でelse ifが終了します。
dbenson 2015年

3
これは、Nexus 5X(デフォルトのgoogleデバイスbtw)では正しい結果を返しません。デバイス密度はxxhdpiで、返される倍密度は約2.6です。
Tobliug '19

20

実際のところ、実際のディスプレイのdpiが必要な場合、ディスプレイのメトリックを照会すると、答えはその中間になります。

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int dpiClassification = dm.densityDpi;
float xDpi = dm.xdpi;
float yDpi = dm.ydpi;

DensityDpi * 160は、使用する必要がある密度/推奨値を提供します

0.75 - ldpi - 120 dpi
1.0 - mdpi - 160 dpi
1.5 - hdpi - 240 dpi
2.0 - xhdpi - 320 dpi
3.0 - xxhdpi - 480 dpi
4.0 - xxxhdpi - 640 dpi

以前の投稿で指定されたとおり

ただし、dm.xdpi常に特定のディスプレイの実際のdpiを提供するわけではありません。例:

Device: Sony ericsson xperia mini pro (SK17i)
Density: 1.0 (e.g. suggests you use 160dpi resources)
xdpi: 193.5238
Real device ppi is arround 193ppi


Device: samsung GT-I8160 (Samsung ace 2)
Density 1.5 (e.g. suggests you use 240dpi resources)
xdpi 160.42105
Real device ppi is arround 246ppi

したがって、ディスプレイの実際のdpiは、Density * xdpiである必要がありますが、これが正しい方法であるかどうかはわかりません。


1
これまでのところ、Density * xdpiを使用することで、これまでのGoogle Playのすべてのアプリで完璧に機能し、過去6か月間
Marek Halmo

密度の乗算* xdpiは論理的ではありません。より高密度のデバイスが存在するようになったことは明らかです-密度とxdpiの両方が増加するため、それらを乗算すると増加が二重にカウントされます。Samsung ace 2はベンダーによるエラーだったと思います。Androidの仕様では、xdpiとydpiは真のピクセル密度です-何もかけないでください。
ToolmakerSteve

17

これはあなたの活動に役立つはずです...

void printSecreenInfo(){

    Display display = getWindowManager().getDefaultDisplay();
    DisplayMetrics metrics = new DisplayMetrics();
    display.getMetrics(metrics);

    Log.i(TAG, "density :" +  metrics.density);

    // density interms of dpi
    Log.i(TAG, "D density :" +  metrics.densityDpi);

    // horizontal pixel resolution
    Log.i(TAG, "width pix :" +  metrics.widthPixels);

     // actual horizontal dpi
    Log.i(TAG, "xdpi :" +  metrics.xdpi);

    // actual vertical dpi
    Log.i(TAG, "ydpi :" +  metrics.ydpi);

}

出力:

I/test( 1044): density :1.0

I/test( 1044): D density :160

I/test( 1044): width pix :800

I/test( 1044): xdpi :160.0

I/test( 1044): ydpi :160.42105

13
public static String getDensity(Context context) {
    String r;
    DisplayMetrics metrics = new DisplayMetrics();

    if (!(context instanceof Activity)) {
        r = "hdpi";
    } else {
        Activity activity = (Activity) context;
        activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);

        if (metrics.densityDpi <= DisplayMetrics.DENSITY_LOW) {
            r = "ldpi";
        } else if (metrics.densityDpi <= DisplayMetrics.DENSITY_MEDIUM) {
            r = "mdpi";
        } else {
            r = "hdpi";
        }
    }

    return r;
}

11

サービスから密度を取得する場合は、次のように機能します。

WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics metrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(metrics);

これは、windowManagerがないときに役に立ちました
silentsudo

8

これを試してみてください。トーストを見つけて表示するメソッドを追加しました。デバイスが該当するカテゴリ。

public static int differentDensityAndScreenSize(Context context) {
  int value = 20;
  String str = "";
  if ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) {
   switch (context.getResources().getDisplayMetrics().densityDpi) {
   case DisplayMetrics.DENSITY_LOW:
    str = "small-ldpi";
    value = 20;
    break;
   case DisplayMetrics.DENSITY_MEDIUM:
    str = "small-mdpi";
    value = 20;
    break;
   case DisplayMetrics.DENSITY_HIGH:
    str = "small-hdpi";
    value = 20;
    break;
   case DisplayMetrics.DENSITY_XHIGH:
    str = "small-xhdpi";
    value = 20;
    break;
   case DisplayMetrics.DENSITY_XXHIGH:
    str = "small-xxhdpi";
    value = 20;
    break;
   case DisplayMetrics.DENSITY_XXXHIGH:
    str = "small-xxxhdpi";
    value = 20;
    break;
   case DisplayMetrics.DENSITY_TV:
    str = "small-tvdpi";
    value = 20;
    break;
   default:
    str = "small-unknown";
    value = 20;
    break;
   }

  } else if ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL) {
   switch (context.getResources().getDisplayMetrics().densityDpi) {
   case DisplayMetrics.DENSITY_LOW:
    str = "normal-ldpi";
    value = 82;
    break;
   case DisplayMetrics.DENSITY_MEDIUM:
    str = "normal-mdpi";
    value = 82;
    break;
   case DisplayMetrics.DENSITY_HIGH:
    str = "normal-hdpi";
    value = 82;
    break;
   case DisplayMetrics.DENSITY_XHIGH:
    str = "normal-xhdpi";
    value = 90;
    break;
   case DisplayMetrics.DENSITY_XXHIGH:
    str = "normal-xxhdpi";
    value = 96;
    break;
   case DisplayMetrics.DENSITY_XXXHIGH:
    str = "normal-xxxhdpi";
    value = 96;
    break;
   case DisplayMetrics.DENSITY_TV:
    str = "normal-tvdpi";
    value = 96;
    break;
   default:
    str = "normal-unknown";
    value = 82;
    break;
   }
  } else if ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) {
   switch (context.getResources().getDisplayMetrics().densityDpi) {
   case DisplayMetrics.DENSITY_LOW:
    str = "large-ldpi";
    value = 78;
    break;
   case DisplayMetrics.DENSITY_MEDIUM:
    str = "large-mdpi";
    value = 78;
    break;
   case DisplayMetrics.DENSITY_HIGH:
    str = "large-hdpi";
    value = 78;
    break;
   case DisplayMetrics.DENSITY_XHIGH:
    str = "large-xhdpi";
    value = 125;
    break;
   case DisplayMetrics.DENSITY_XXHIGH:
    str = "large-xxhdpi";
    value = 125;
    break;
   case DisplayMetrics.DENSITY_XXXHIGH:
    str = "large-xxxhdpi";
    value = 125;
    break;
   case DisplayMetrics.DENSITY_TV:
    str = "large-tvdpi";
    value = 125;
    break;
   default:
    str = "large-unknown";
    value = 78;
    break;
   }

  } else if ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_XLARGE) {
   switch (context.getResources().getDisplayMetrics().densityDpi) {
   case DisplayMetrics.DENSITY_LOW:
    str = "xlarge-ldpi";
    value = 125;
    break;
   case DisplayMetrics.DENSITY_MEDIUM:
    str = "xlarge-mdpi";
    value = 125;
    break;
   case DisplayMetrics.DENSITY_HIGH:
    str = "xlarge-hdpi";
    value = 125;
    break;
   case DisplayMetrics.DENSITY_XHIGH:
    str = "xlarge-xhdpi";
    value = 125;
    break;
   case DisplayMetrics.DENSITY_XXHIGH:
    str = "xlarge-xxhdpi";
    value = 125;
    break;
   case DisplayMetrics.DENSITY_XXXHIGH:
    str = "xlarge-xxxhdpi";
    value = 125;
    break;
   case DisplayMetrics.DENSITY_TV:
    str = "xlarge-tvdpi";
    value = 125;
    break;
   default:
    str = "xlarge-unknown";
    value = 125;
    break;
   }
  }
// The Toast will show the Device falls in Which Categories.
Toast.makeText(MainActivity.this, ""+str, Toast.LENGTH_SHORT).show();

  return value;
 }

http://www.androidwarriors.com/2016/01/how-to-find-different-devices-screen.html


7

これはうまくいくはずです。

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels; //320
int height = dm.heightPixels; //480

4
ディスプレイのピクセルサイズは密度ではありません。
joshperry

1
これは、ピクセルではなく密度に依存しないピクセルです。そして、あなたが見るその320は320dipではなく320dipです。pxの計算は異なります。このstackoverflow.com/questions/6840904/…を
Lukap '27 / 07/27

7

さらに別の答え:

/**
* @return "ldpi", "mdpi", "hdpi", "xhdpi", "xhdpi", "xxhdpi", "xxxhdpi", "tvdpi", or "unknown".
*/
public static String getDensityBucket(Resources resources) {
    switch (resources.getDisplayMetrics().densityDpi) {
        case DisplayMetrics.DENSITY_LOW:
            return "ldpi";
        case DisplayMetrics.DENSITY_MEDIUM:
            return "mdpi";
        case DisplayMetrics.DENSITY_HIGH:
            return "hdpi";
        case DisplayMetrics.DENSITY_XHIGH:
            return "xhdpi";
        case DisplayMetrics.DENSITY_XXHIGH:
            return "xxhdpi";
        case DisplayMetrics.DENSITY_XXXHIGH:
            return "xxxhdpi";
        case DisplayMetrics.DENSITY_TV:
            return "tvdpi";
        default:
            return "unknown";
    }
}

3

デバイスによって読み込まれた密度を取得する別の方法:

values密度ごとにフォルダを作成する

  • 値(デフォルトmdpi)
  • values-hdpi
  • values-xhdpi
  • 値-xxhdpi
  • 値-xxxhdpi

それぞれに文字列リソースを追加しますstrings.xml

<string name="screen_density">MDPI</string>    <!-- ..\res\values\strings.xml -->
<string name="screen_density">HDPI</string>    <!-- ..\res\values-hdpi\strings.xml -->
<string name="screen_density">XHDPI</string>   <!-- ..\res\values-xhdpi\strings.xml -->
<string name="screen_density">XXHDPI</string>  <!-- ..\res\values-xxhdpi\strings.xml -->
<string name="screen_density">XXXHDPI</string> <!-- ..\res\values-xxxhdpi\strings.xml -->

次に、文字列リソースを取得するだけで、密度が決まります。

String screenDensity = getResources().getString(R.string.screen_density);

密度がより大きい場合はXXXHDPI、デフォルトでになり、密度がXXXHDPI低い場合HDPIは、デフォルトでになります。MDPI

R.strings.screen_densityの値

私は取り残さLDPI私のユースケースのためにそれが必要ではないので、。


これが密度を得るための正しい方法だと思います。getResources()。getDisplayMetrics()。densityを使用しているため、設定で表示サイズを変更すると密度が変化します。
Fantasy Fang

1

これを試して...

コトリンに

fun determineScreenDensityCode(): String {
      return when (resources.displayMetrics.densityDpi) {
         DisplayMetrics.DENSITY_LOW -> "ldpi"
         DisplayMetrics.DENSITY_MEDIUM -> "mdpi"
         DisplayMetrics.DENSITY_HIGH -> "hdpi"
         DisplayMetrics.DENSITY_XHIGH, DisplayMetrics.DENSITY_280 -> "xhdpi"
         DisplayMetrics.DENSITY_XXHIGH, DisplayMetrics.DENSITY_360, DisplayMetrics.DENSITY_400, DisplayMetrics.DENSITY_420 -> "xxhdpi"
         DisplayMetrics.DENSITY_XXXHIGH, DisplayMetrics.DENSITY_560 -> "xxxhdpi"
         else -> "Unknown code ${resources.displayMetrics.densityDpi}"
     }
}

あなたは呼び出すことができprintln("density: ${determineScreenDensityCode()}") 、出力は次のようになりますSystem.out: density: xxxhdpi


0

次のコードを使用して、モジュールからDPIにアクセスしています(コンテキストオブジェクトにアクセスする必要はありません)。

(Resources.getSystem().getDisplayMetrics().xdpi
Resources.getSystem().getDisplayMetrics().ydpi)/2

0

Androidでは、次のように画面密度を取得できます。

public static String getScreenDensity(Context context)
{
    String density;
    switch (context.getResources().getDisplayMetrics().densityDpi)
    {
        case DisplayMetrics.DENSITY_LOW:
            density = "LDPI";
            break;
        case DisplayMetrics.DENSITY_140:
            density = "LDPI - MDPI";
            break;
        case DisplayMetrics.DENSITY_MEDIUM:
            density = "MDPI";
            break;
        case DisplayMetrics.DENSITY_180:
        case DisplayMetrics.DENSITY_200:
        case DisplayMetrics.DENSITY_220:
            density = "MDPI - HDPI";
            break;
        case DisplayMetrics.DENSITY_HIGH:
            density = "HDPI";
            break;
        case DisplayMetrics.DENSITY_260:
        case DisplayMetrics.DENSITY_280:
        case DisplayMetrics.DENSITY_300:
            density = "HDPI - XHDPI";
            break;
        case DisplayMetrics.DENSITY_XHIGH:
            density = "XHDPI";
            break;
        case DisplayMetrics.DENSITY_340:
        case DisplayMetrics.DENSITY_360:
        case DisplayMetrics.DENSITY_400:
        case DisplayMetrics.DENSITY_420:
        case DisplayMetrics.DENSITY_440:
            density = "XHDPI - XXHDPI";
            break;
        case DisplayMetrics.DENSITY_XXHIGH:
            density = "XXHDPI";
            break;
        case DisplayMetrics.DENSITY_560:
        case DisplayMetrics.DENSITY_600:
            density = "XXHDPI - XXXHDPI";
            break;
        case DisplayMetrics.DENSITY_XXXHIGH:
            density = "XXXHDPI";
            break;
        case DisplayMetrics.DENSITY_TV:
            density = "TVDPI";
            break;
        default:
            density = "UNKNOWN";
            break;
    }

    return density;
}

そして、このようなコトリンでは:

fun getScreenDensity(context: Context): String {
    val density: String
    when (context.resources.displayMetrics.densityDpi) {
        DisplayMetrics.DENSITY_LOW -> density = "LDPI"
        DisplayMetrics.DENSITY_140 -> density = "LDPI - MDPI"
        DisplayMetrics.DENSITY_MEDIUM -> density = "MDPI"
        DisplayMetrics.DENSITY_180, DisplayMetrics.DENSITY_200, DisplayMetrics.DENSITY_220 -> density = "MDPI - HDPI"
        DisplayMetrics.DENSITY_HIGH -> density = "HDPI"
        DisplayMetrics.DENSITY_260, DisplayMetrics.DENSITY_280, DisplayMetrics.DENSITY_300 -> density = "HDPI - XHDPI"
        DisplayMetrics.DENSITY_XHIGH -> density = "XHDPI"
        DisplayMetrics.DENSITY_340, DisplayMetrics.DENSITY_360, DisplayMetrics.DENSITY_400, DisplayMetrics.DENSITY_420, DisplayMetrics.DENSITY_440 -> density =
            "XHDPI - XXHDPI"
        DisplayMetrics.DENSITY_XXHIGH -> density = "XXHDPI"
        DisplayMetrics.DENSITY_560, DisplayMetrics.DENSITY_600 -> density = "XXHDPI - XXXHDPI"
        DisplayMetrics.DENSITY_XXXHIGH -> density = "XXXHDPI"
        DisplayMetrics.DENSITY_TV -> density = "TVDPI"
        else -> density = "UNKNOWN"
    }

    return density
}

新しい密度が追加されているかどうかを定期的に確認してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.