首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使.getWidth已被弃用,在显示器上使用它也安全吗

即使.getWidth已被弃用,在显示器上使用它也安全吗
EN

Stack Overflow用户
提问于 2012-10-08 19:02:20
回答 4查看 34.5K关注 0票数 60

所以我有一个小问题,我正在写一个函数,它需要将屏幕宽度发送到服务器。我得到了所有的工作,并且我使用:

代码语言:javascript
复制
Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();

来获得宽度。但是,.getWidht()函数已被弃用,它表明您需要使用:

代码语言:javascript
复制
Point size = new Point();
display.getSize(size);

但该功能仅适用于api级别13或更高级别,并且我的最低sdk为8。那么我该怎么办?我和getWidth在一起安全吗?为什么添加新函数而不让它们向后兼容?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-28 19:24:51

这种方法可能会有所帮助:

代码语言:javascript
复制
DisplayMetrics displaymetrics = new DisplayMetrics();
mContext.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int screenWidth = displaymetrics.widthPixels;
int screenHeight = displaymetrics.heightPixels;
票数 126
EN

Stack Overflow用户

发布于 2012-10-08 19:04:44

您可以在运行时检查API级别,并选择要使用的级别,例如:

代码语言:javascript
复制
final int version = android.os.Build.VERSION.SDK_INT;
final int width;
if (version >= 13)
{
    Point size = new Point();
    display.getSize(size);
    width = size.x;
}
else
{
    Display display = getWindowManager().getDefaultDisplay(); 
    width = display.getWidth();
}
票数 11
EN

Stack Overflow用户

发布于 2012-10-08 19:06:49

如果您想要正确,请使用以下方法:

代码语言:javascript
复制
int sdk = android.os.Build.VERSION.SDK_INT;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR2) {
    Display display = getWindowManager().getDefaultDisplay();
    int width = display.getWidth();
} else {
    Point size = new Point();
    display.getSize(size);
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12780384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档