Android中Display及DisplayMetrics理解
最后更新于:2022-04-01 11:26:07
Android已经提供DisplayMetircs类可以很方便的获取分辨率。下面简要介绍DisplayMetics类:
Andorid.util包下的DisplayMetrics类提供了一种关于显示的通用信息,如显示大小,分辨率和字体。
为了获取DisplayMetrics成员,首先初始化一个对象如下:
DisplayMetrics metrics =new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics;
注:构造函数DisplayMetrics不需要传递任何参数;调用getWindowManager()之后,会取得现有Activity的Handle,此时,getDefaultDisplay()方法将取得的宽高维度存放于DisplayMetrics对象中,而取得的宽高维度是以像素为单位(Pixel),“像素”所指的是“绝对像素”而非“相对像素”。
一般通用程序写法如下:
~~~
Display display = getWindow().getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics();
display.getMetrics(outMetrics);
~~~
这里很奇怪,和我们一般的理解不一样,这里是把测量的结果存放到outMetrics 中。outMetrics中就存放了,我们需要的屏幕的宽高数据,通过outMetrics. 后面就会出现很多有关屏幕信息的数据,例如常用的宽WidthPixels 和高 heightPixels;
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-25_571e215230aaf.jpg)
例如下面一句代码就是获取屏幕一半的宽度:
~~~
int with = outMetrics.widthPixels/2;
~~~