所以我有一个小问题,我正在写一个函数,它需要将屏幕宽度发送到服务器。我得到了所有的工作,并且我使用:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();来获得宽度。但是,.getWidht()函数已被弃用,它表明您需要使用:
Point size = new Point();
display.getSize(size);但该功能仅适用于api级别13或更高级别,并且我的最低sdk为8。那么我该怎么办?我和getWidth在一起安全吗?为什么添加新函数而不让它们向后兼容?
发布于 2013-01-28 19:24:51
这种方法可能会有所帮助:
DisplayMetrics displaymetrics = new DisplayMetrics();
mContext.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int screenWidth = displaymetrics.widthPixels;
int screenHeight = displaymetrics.heightPixels;发布于 2012-10-08 19:04:44
您可以在运行时检查API级别,并选择要使用的级别,例如:
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();
}发布于 2012-10-08 19:06:49
如果您想要正确,请使用以下方法:
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);
}https://stackoverflow.com/questions/12780384
复制相似问题