Android之获取屏幕的三种方式
2017-10-21 本文已影响0人
侯蛋蛋_
前言
获取屏幕我们第一个想到的就是DisplayMetrics类
java.lang.Object
↳ android.util.DisplayMetrics
是Android提供的记述屏幕的有关信息的一种结构,诸如其尺寸,密度和字体缩放的一般信息。
第一种方法:
WindowManager wm = (WindowManager) context.getSystemService(
Context.WINDOW_SERVICE);
DisplayMetrics metrics= new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(metric);
第二种方法
DisplayMetrics metrics= new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);)
第三种方法
DisplayMetric metrics=mContext.getResources().getDisplayMetric();
//这俩个就是手机屏幕的屏幕分辨率,物理宽高值如1080*1920(ToolBar或ActionBar会占据一定空间,得到的heightPiexls会小一点)
int width = metrics.widthPixels; // 表示屏幕的像素宽度,单位是px(像素)
int height = metrics.heightPixels; // 表示屏幕的像素高度,单位是px(像素)
float density = metrics.density; // 显示器的逻辑密度,Density Independent Pixel(如3.0)
( metrics.scaledDensity和metrics.density数值是一样的)
int densityDpi = metrics.densityDpi; // 整个屏幕的像素密度DPI(dots per inch每英寸像素数),可以是密度低,密度中等,或者密度高(如240/ 360 / 480)
float xdpi= metrics.xdpi /表示在X轴方向上每英寸的像素值,X轴方向上的DPI(dots per inch)
float ydpi= metrics.ydpi //表示在Y轴方向上每英寸的像素值, Y方向上的DPI
//wm.getDefaultDisplay().getHeight();获得的数据和int height = metrics.heightPixels一样,不过getHeight()方法弃用了,建议使用后者