旧的Android OS版本不支持getSize(),不推荐使用getWidth()/ getHeight()

那么我该如何编写代码来适应这个呢?我不想在我的代码中留下已弃用的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();
最好的(最好的,我的意思是每次都可以使用的选项)选项是使用反射.查看Android Backwards Compatibility Backwards Compatibility指南(更新了反思文章的新位置).

虽然tyczj的答案可以完美地运行,只要已弃用的功能仍然在SDK中,一旦它们被删除,如果你仍然想要在最新的SDK上构建,你将无法使用它们或在旧设备上运行你的应用程序.

反射通过在运行时有效地动态检测函数来解决这个问题,这意味着即使你构建了ICS,只要minSdkVersion是正确的,你就可以让你的应用程序在装有Gingerbread或Froyo的设备上运行.

翻译自:https://stackoverflow.com/questions/10439033/getsize-not-supported-on-older-android-os-versions-getwidth-getheight-d

转载注明原文:旧的Android OS版本不支持getSize(),不推荐使用getWidth()/ getHeight()