安卓获取屏幕最大(绝对)分辨率

安卓开发时,在很多应用场景需要获取手机屏幕的真实分辨率,然而查阅了大部分博客提供的获取方法发现获取方法并不对。下面几种常用的方法(错误)和最终正确获取的方法均会展示在下面。

实验场景:Activity(隐藏或不隐藏状态栏、虚拟导航栏等场景)、Service 中。

错误方法一:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;

错误方法二:

WindowManager wm = (WindowManager) (context.getSystemService(Context.WINDOW_SERVICE));
DisplayMetrics metrics = new DisplayMetrics();
wm.getDefaultDisplay().getRealMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;

下面是正确示范:

WindowManager wm = (WindowManager) (context.getSystemService(Context.WINDOW_SERVICE));
Point point = new Point();
wm.getDefaultDisplay().getRealSize(point);
int width = point.x;
int height = point.y;

到这里,你就可以获取到正确分辨率参数了。如果遇到问题,或者无法获取到真实分辨率,可以给我评论或者邮件。^_^

你可能感兴趣的:(Android)