android 设备尺寸,关于android:如何获取设备的屏幕尺寸?

本问题已经有最佳答案,请猛点这里访问。

我想获取一个android屏幕的高度,如果屏幕安装了一定的高度,我该怎么做?

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

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的计算。 stackoverflow.com/questions/6840904/

拿起设备,看看它们的规格,就会发现使用此代码会得到错误的结果!

有趣的是:SDK表示不赞成使用这些方法,而应将其替换为getSize(Point),但是后者至少在我的设备上导致NoSuchMethodException。我想知道这种弃用的目的是什么...

@SargeBorsch出现此错误时,您的设备正在运行什么版本的Android? getSize(Point)仅在Android 3及更高版本中。如果小于3,则需要使用旧方法。

@RevTyler 2.3.4。但是,如果要求支持Android 2.3.4以及可能无法轻松升级的其他一些流行设备,为什么将方法标记为已弃用?

@SargeBorsch已弃用并不意味着您永远不要使用它。不推荐使用意味着您仅应在必要时使用它。它已被替换,但它们保留了那些无法升级的旧设备的代码。您将执行if(android.os.Build.VERSION.SDK_INT >= 13)以确定是应使用新代码还是不建议使用的代码。

@Lukap感谢您的链接,这是正确的答案。在过去的几天里,上面的代码使我发疯。

在活动中:

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对象有一个小错误。该常量应为Context.WINDOW_SERVICE,而不是普通的WINDOW_SERVICE。

不建议使用getDefaultDisplay()的getHeight()和getWidth()。

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

Display display = getWindowManager().getDefaultDisplay();

int width = display.getWidth();

int height = display.getHeight();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值