如何获取设备的屏幕尺寸? [复制]

Posted

技术标签:

【中文标题】如何获取设备的屏幕尺寸? [复制]【英文标题】:How to get screen size of device? [duplicate] 【发布时间】:2011-09-29 04:00:23 【问题描述】:

我想得到一个安卓屏幕的高度,如果屏幕设置了一定的高度,我该怎么做呢?

【问题讨论】:

【参考方案1】:

从活动内部:

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

或者如果你只有Context对象:

WindowManager windowManager = (WindowManager)mContext.getSystemService(WINDOW_SERVICE);
int width = windowManager.getDefaultDisplay().getWidth();
int height = windowManager.getDefaultDisplay().getHeight()

更新。如何检测你的应用在大屏幕上运行:

//android Level 9 and up:
Configuration config = getResources().getConfiguration();
if((config.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) ==  
    Configuration.SCREENLAYOUT_SIZE_XLARGE) 

    //xlarge screen

【讨论】:

好的,谢谢!那我怎么比较呢? 10.2英寸屏幕?喜欢它的指标是什么? 酷!谢谢,实际上更好! 谢谢。但我猜“上下文”对象有一个小错误。常量应该是 'Context.WINDOW_SERVICE' 而不是普通的 'WINDOW_SERVICE'。 getHeight() 和 getWidth() for getDefaultDisplay() 已弃用。【参考方案2】:

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

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);

【讨论】:

如果我想一步一步走怎么办? @yoshi24,编辑了我的答案... 这是错误的!!! ,这不是 px 的计算,而是 dip 的计算。 ***.com/questions/6840904/… 让设备查看它们的规格,您会发现使用此代码会得到错误的结果! @SargeBorsch 已弃用并不意味着您永远不应该使用它。不推荐使用意味着您应该只在必要时使用它。它已被替换,但他们为无法升级的旧设备保留了代码。您将执行if(android.os.Build.VERSION.SDK_INT >= 13) 来确定您应该使用新代码还是弃用代码。【参考方案3】:

在您的 onCreate 或任何其他 Activity 方法中只需执行以下操作:

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

【讨论】:

以上是关于如何获取设备的屏幕尺寸? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

android中getRealMetrics获取屏幕原始尺寸的替代方法是啥

android 版本为 2.2.1 和 2.3.5 且屏幕尺寸为 240 * 320 和屏幕尺寸为 480 * 800 的 Android 设备如何使用媒体查询?

Android设备网络屏幕尺寸SD卡本地IP存储空间等信息获取工具类

如何在 React 中检测屏幕尺寸是不是已更改为移动设备?

SpriteKit 如何支持多种屏幕尺寸?

如何使用 Qt 获取屏幕尺寸?