Android获取屏幕的实际分辨率

最近用到屏幕的分辨率,按照网上的方法(千篇一律),获取到的分辨率都不含状态栏。

比如:

屏幕实际分辨率:1280 x 800
获取到不含状态栏的就是:1280 x 764
而且,如果状态栏在底部,状态栏的高度也无法获取到。

经过半个上午纠缠,发现Android本身提供了获取屏幕实际分辨率的方法(API level >= 17):
/**
 * Gets display metrics based on the real size of this display.
 */
sdk/sources/android-23/android/view/Display.java
public void getRealMetrics(DisplayMetrics outMetrics)

于是,获取屏幕实际分辨率的方法是:

DisplayMetrics metrics =new DisplayMetrics
/**
 * getRealMetrics - 屏幕的原始尺寸,即包含状态栏。
 * version >= 4.2.2
 */();
getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;

你可能感兴趣的:(Linux应用)