【问题标题】:How to get the screen's size of a phone Android [duplicate]如何获取Android手机的屏幕尺寸[重复]
【发布时间】:2017-04-07 10:28:32
【问题描述】:

我要获取屏幕的大小,我已经有了分辨率

 DisplayMetrics displayMetrics = new DisplayMetrics();
    WindowManager windowmanager = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
    windowmanager.getDefaultDisplay().getMetrics(displayMetrics);
    final int deviceWidth = displayMetrics.widthPixels;
    final int deviceHeight = displayMetrics.heightPixels;

但我想要以英寸为单位的尺寸,例如三星 Galaxy S7 的分辨率为 2560x1440,屏幕为 5.1" ,这就是我想要的 5.1。

谢谢

【问题讨论】:

    标签: java android screen screen-resolution screen-size


    【解决方案1】:

    如果您想要以像素为单位的显示尺寸,您可以使用以下代码:

    Display display = getWindowManager().getDefaultDisplay(); 
    int width = display.getWidth();
    int height = display.getHeight();
    

    然后您可以添加比较高度以满足您的需求的条件。

    英寸:

    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    double x = Math.pow(dm.widthPixels/dm.xdpi,2);
    double y = Math.pow(dm.heightPixels/dm.ydpi,2);
    double screenInches = Math.sqrt(x+y);
    Log.d("debug","Screen inches : " + screenInches);
    

    【讨论】:

    • 你给的第一种方法已经折旧了。
    • @MarcAlexander 是的,添加了许多新更新。
    【解决方案2】:

    试试这个

    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    int width=dm.widthPixels;
    int height=dm.heightPixels;
    double wi=(double)width/(double)dm.xdpi;
    double hi=(double)height/(double)dm.ydpi;
    double x = Math.pow(wi,2);
    double y = Math.pow(hi,2);
    double screenInches = Math.sqrt(x+y);
    

    【讨论】:

    • 谢谢,我试过了,它有效,但对于我的 S7,我得到 5.093... 我怎样才能将这个结果四舍五入得到 5.1,以便我可以干净地显示它
    • 你可以使用String.format("%.2f", d),你的double会自动四舍五入。
    猜你喜欢
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 2019-10-16
    相关资源
    最近更新 更多