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

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

实验场景: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;

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

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值