Android获取手机屏幕尺寸代码段

获取安卓手机屏幕尺寸的方式其实蛮,但真要用得顺手,还得理解点底层逻辑。比如你在做适配时,知道屏幕有多宽、多高,像素密度是多少,能帮你决定该用多大的字体、多粗的边框,体验上差别可大了。

代码里先拿到Display对象,这步比较常规,直接通过WindowManager拿就行:

WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();

,用getMetrics()DisplayMetrics拉出来,你就能拿到像素宽高和密度这些核心参数:

DisplayMetrics displayMetrics = new DisplayMetrics();
display.getMetrics(displayMetrics);
int widthPixels = displayMetrics.widthPixels;
int heightPixels = displayMetrics.heightPixels;
float density = displayMetrics.density;
float densityDpi = displayMetrics.densityDpi;

要换成逻辑像素?简单,用widthPixels / density算就对了。适合你在用dp单位做 UI 布局时参考。

适配方面,Android 支持你建多个资源目录,比如values-mdpivalues-xhdpi,在里面写不同的尺寸资源,自动根据设备密度加载,挺方便。

顺带提醒下,API 11 之后还能用getRealMetrics()获取带系统栏的完整尺寸,做一些全屏显示需求时别忘了它。

如果你是做布局调试、屏幕适配这类事儿比较多的,可以把这段代码封装下当工具类,写起来更省心。

zip
获取手机屏幕尺寸的代码段.zip 预估大小:2个文件
folder
获取手机屏幕尺寸的代码段 文件夹
file
getDisplayMetrics.java.txt 1024B
file
资源说明.txt 36B
zip 文件大小:934B