对于我的应用程序,我需要显示器的确切英寸。我当前的解决方案是:

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,这是错误的...

最佳答案

以下结果使我得出的结果非常接近规范:

    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(或dm.widthPixels取决于您的方向)不一定提供准确的信息,因为软键(如在Galaxy Nexus中使用的)不会添加到高度(或宽度)中。

关于android - 如何在Android中获取以英寸为单位的显示尺寸?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19445050/

10-12 05:33