↳android.util.DisplayMetrics
类概述
描述一个显示屏的基本信息,像尺寸,密度,字体缩放等.
获取DisplayMetrics成员,初始化对象:
DisplayMetrics metrics =newDisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
概述
一、常量
int DENSITY_DEFAULT 整个系统使用的参考密度,系统默认参考密度
int DENSITY_HIGH 高密度显示屏的标准量化DPI
int DENSITY_LOW 低密度显示屏的标准量化DPI
int DENSITY_MEDIUM 中密度显示屏的标准量化DPI
int DENSITY_TV 针对一些常见显示屏设置的次要密度
int DENSITY_XHIGH 超高密度显示屏的标准量化DPI
int DENSITY_XXHIGH 超超高密度显示屏的标准量化DPI
二、字段(Fields)
public float density 显示屏的逻辑密度
public int densityDpi 用DPI(每英寸点数)表示显示屏密度
public int heightPixels 绝对像素高度
public float scaledDensity 显示字体的缩放因子
public int widthPixels 绝对像素宽度
public float xdpi X方向上每英寸显示屏物理像素
public float ydpi Y方向上每英寸显示屏物理像素
三、公共构造函数
DisplayMestrics()
四、公共方法
boolean equals(Object o) 让这实例跟指定对象比较,确定是否相等
boolean equals(DisplayMetrics other) 比较两个metrics,相等返回true
int hasCode() 给对象返回一个整数hash码
void setTo(DisplayMetrics o)
void setToDefaults()
String toString() 返回一个人类可读的简洁字符串
五、从类java.lang.Object继承的方法
常量
public static final int DENSITY_DEFAULT
整个系统使用的参考密度,系统默认参考密度.
public static final int DENSITY_TV
这是次要密度,添加到一些常见的显示屏设置。建议应用程序不要把该常量作为主要密度,也就是说不要为这密度提供特定的图形,合理的是允许平台从别的密度(通常是DENSITY_HIGH高密度)缩放到这个密度。在大多数情况下(比如在Drawable里使用bitmaps), 平台能在load time(载入的时间里)实施缩放,所以唯一的开销是微小的启动运行开销。
该密度起先是为了对应720p TV显示屏而介绍的,1080p 电视的密度是DENSITY_XHIGH, 这里的值给720p TV提供了同样的UI尺寸。当这些设备显示屏是1280x720时,7" tablets(平板)里也有使用。
public static final int DENSITY_XXHIGH
extra-extra-high-density(超超高密度)显示屏的标准量化DPI。应用程序基本上不需要当心这个密度, 相信在所有情况下从XHIGH图形放大到该密度也应该该足够使用。
Fields(字段)
public float density
显示屏的逻辑密度。这是密度独立像素(dip)单元的缩放因子,为系统显示提供基线。一个DIP 是大约160 dpi 显示屏上的一个像素 (比如 一个 240x320, 1.5"x2" 显示屏)。所以160dpi显示屏,密度值是1; 120dpi 显示屏密度值为0.75。
该值不完全按照实际屏幕尺寸(就像xdpi 和 ydpi 给出的尺寸,常常是由overall UI(整体界面)根据显示DPI的总变化逐步缩放而成的)。比如,一个 240x320 屏幕的密度值为1,即使它的宽度是1.8", 1.3"等。然而,如果屏幕分辨率增加到 320x480,但是屏幕尺寸依旧是1.5"x2",那么密度值将增加(可能到1.5)。
也可参见
DENSITY_DEFAULT
public int densityDpi
用dots-per-inch(dpi)表示显示屏密度。可能是DENSITY_LOW
, DENSITY_MEDIUM
, 或 DENSITY_HIGH。
public float scaledDensity
显示字体的缩放因子。 跟density(密度)一样,除了它可能会在运行时基于用户偏好的字体大小以较小的增量调整。
公共构造函数
公共方法
public boolean equals (Object o)
让该实例跟指定对象进行比较,确定他们是否相等。为了让他们相等,o必须跟该实例表示同一对象,用特定类进行比较。一般情况下,该比较应该是自反,对称和可传递的。 Also, no object reference other than null is equal to null.
仅当this == o 时,默认实现返回true. 参见 Writing a correct equals
method 如果你打算实现自己的equals 方法。
如果两个对象的equals都返回true,hashCode()肯定返回跟同样的hash code值。也就是说,对象的子类要么重写这2个方法(equals(Object o) 和 hashCode() ),要么一个都不重写。
参数
O 跟这实例比较的对象
返回值
true
指定对象跟该对象相等;否则返回false
public boolean equals (DisplayMetrics other)
如果这些display metrics 跟别的 display metrics 相等,则返回true
参数
other 要比较的另一个 display metrics
返回值
- 如果两个display metrics相等,则返回true
public int hashCode ()
为对象返回一个整数hash code(哈希码)。 任何2个对象的方法equals(Object)返回值为true时,一定返回同样的哈希值。也就是说,对象的子类要么重写这2个方法(equals(Object o) 和 hashCode() ),要么一个都不重写。
运行过程中哈希值不能改变,除非在equals方法里用的信息发生改变。
参见 Writing a correct hashCode
method 如果你打算实现自己的hashCode 方法
返回值
- 对象的哈希值
public String toString ()
返回一个人类可读的对象描述。 建议子类重写这个方法,提供对象类型和数据的实现。默认实现跟以下表达式相同:
getClass().getName()+'@'+Integer.toHexString(hashCode())
参见 Writing a useful toString
method 如果你想实现自己的toString 方法
返回值
- 返回一个可打印的对象描述