android - 旧版 Android 操作系统不支持 getSize(),getWidth()/getHeight() 已弃用

标签 android deprecated backwards-compatibility

那么我该如何编写代码来适应这种情况呢?我不想在我的代码中留下已弃用的 API 调用,但我也不想失去使用(稍微)旧设备的用户。我可以实现某种兼容性设置吗?

相对。代码

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int screen_width = size.x;
int screen_height = size.y;

对比旧方法:

int screen_width = getWindowManager().getDefaultDisplay().getWidth();
int screen_height = getWindowManager().getDefaultDisplay().getHeight();

最佳答案

我有两个函数,发送上下文和获取以像素为单位的高度和宽度。

public static int getWidth(Context mContext){
    int width=0;
    WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    if(Build.VERSION.SDK_INT>Build.VERSION_CODES.HONEYCOMB){                   
        Point size = new Point();
        display.getSize(size);
        width = size.x;
    }
    else{
        width = display.getWidth();  // deprecated
    }
    return width;
}

public static int getHeight(Context mContext){
    int height=0;
    WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    if(Build.VERSION.SDK_INT>Build.VERSION_CODES.HONEYCOMB){               
        Point size = new Point();
        display.getSize(size);
        height = size.y;
    }else{          
        height = display.getHeight();  // deprecated
    }
    return height;      
}

关于android - 旧版 Android 操作系统不支持 getSize(),getWidth()/getHeight() 已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10439033/

相关文章:

c# - 当类型移动程序集和命名空间时,protobuf-net 是否允许向后兼容?

android - 如何检查用户是否已经在社交身份验证android中使用facebook登录

android - 是否可以使用 Dexmaker 覆盖现有类中的方法?

php - 如何使用已弃用的 mysql_* 函数成功重写旧的 mysql-php 代码?第二部分

java - 测试两个 Maven 工件的向后兼容性

python - 使用 php 格式的函数 password_hash() 的 Django 密码哈希器

android - 每个列表项中的两个 View

android - 改变启动 Activity

swift - UIAlertView 已弃用?

c++ - 返回类型更改时如何弃用函数 C++