5


私のアプリケーションには、ディスプレイの正確なインチが必要です。私の現在の解決策は次のとおりです。

double inch;
double x = Math.pow(widthPix/dm.xdpi,2);
double y = Math.pow(heigthPix/dm.ydpi,2);
double screenInches = Math.sqrt(x+y);

inch = screenInches;

inch = inch * 10;
inch = Math.round(inch);
inch = inch / 10;

ディスプレイのインチを取得するより良い方法はありますか? 私のテストデバイスの現在の4インチでは、5.9と表示されていますが、それは間違っています...

4

2 に答える 2

8

以下は、仕様に非常に近い結果を私に与えました:

    DisplayMetrics dm = getResources().getDisplayMetrics();

    double density = dm.density * 160;
    double x = Math.pow(dm.widthPixels / density, 2);
    double y = Math.pow(dm.heightPixels / density, 2);
    double screenInches = Math.sqrt(x + y);
    log.info("inches: {}", screenInches);

出力:inches: 4.589389937671455
仕様: Samsung Galaxy Nexus (720 x 1280 ピクセル、~320 dpi、4.65 インチ)

dm.heightPixelsソフト キー (Galaxy Nexus で使用されている) は高さ (または幅) に追加されないため、 (dm.widthPixels方向によっては) 必ずしも正確な情報が提供されないことに注意してください。

于 2013-10-18T09:27:44.467 に答える