Android中Display及DisplayMetrics理解

来源:互联网 发布:javascript是什么知乎 编辑:程序博客网 时间:2024/05/22 08:17

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;

例如下面一句代码就是获取屏幕一半的宽度:

int with = outMetrics.widthPixels/2;


1 1