在显示器上使用.getWidth是否安全,即使它已被弃用

时间:2012-10-08 11:02:20

标签: android width deprecated

所以我有一个小问题,我正在编写一个需要向服务器发送屏幕宽度的函数。我完成了所有工作,并使用:

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

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

Point size = new Point();
display.getSize(size);

但是这个功能仅适用于api等级13或更高,我的最低sdk是8.所以我该怎么办?如果我留在getWidth是否安全?为什么要添加新功能而不使它们向后兼容?

3 个答案:

答案 0 :(得分:110)

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

DisplayMetrics displaymetrics = new DisplayMetrics();
mContext.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int screenWidth = displaymetrics.widthPixels;
int screenHeight = displaymetrics.heightPixels;

答案 1 :(得分:11)

您可以在运行时检查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();
}

答案 2 :(得分:4)

如果您想要正确,请使用此方法>

           int sdk = android.os.Build.VERSION.SDK_INT;
            if (sdk < android.os.Build.VERSION.RELEASE) {
                Display display = getWindowManager().getDefaultDisplay();
                int width = display.getWidth();

            } else {
                Point size = new Point();
                display.getSize(size);

            }