public class DisplayMetrics
extends Object
java.lang.Object | |
↳ | android.util.DisplayMetrics |
描述有关显示的一般信息的结构,例如其大小,密度和字体缩放。
要访问DisplayMetrics成员,请像这样初始化一个对象:
DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics);
Constants |
|
---|---|
int |
DENSITY_280 中间密度为 |
int |
DENSITY_360 介于 |
int |
DENSITY_400 介于 |
int |
DENSITY_420 介于 |
int |
DENSITY_560 介于 |
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用于超高密度屏幕。 |
int |
DENSITY_XXXHIGH 标准量化DPI用于超高密度屏幕。 |
Fields |
|
---|---|
public static final int |
DENSITY_DEVICE_STABLE 该设备的密度稳定。 |
public float |
density 显示器的逻辑密度。 |
public int |
densityDpi 屏幕密度表示为每英寸点数。 |
public int |
heightPixels 可用显示大小的绝对高度(以像素为单位)。 |
public float |
scaledDensity 显示器上显示的字体缩放比例。 |
public int |
widthPixels 可用显示大小的绝对宽度(以像素为单位)。 |
public float |
xdpi X维中每英寸屏幕的确切物理像素。 |
public float |
ydpi Y维中每英寸屏幕的确切物理像素。 |
Public constructors |
|
---|---|
DisplayMetrics() |
Public methods |
|
---|---|
boolean |
equals(Object o) 指示其他某个对象是否“等于”这一个。 |
boolean |
equals(DisplayMetrics other) 如果这些显示指标等于其他显示指标,则返回true。 |
int |
hashCode() 返回对象的哈希码值。 |
void |
setTo(DisplayMetrics o) |
void |
setToDefaults() |
String |
toString() 返回对象的字符串表示形式。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
int DENSITY_280
中间密度为DENSITY_HIGH
(240dpi)和DENSITY_XHIGH
(320dpi)之间的屏幕。 这不是一个应用程序应该瞄准,而是依托该系统,以扩展其密度DENSITY_XHIGH
资产为他们。
常量值:280(0x00000118)
int DENSITY_360
介于DENSITY_XHIGH
(320 dpi)和DENSITY_XXHIGH
(480 dpi)之间的屏幕的中等密度。 这不是应用程序应该定位的密度,而是依靠系统为他们缩放其DENSITY_XXHIGH
资产。
常量值:360(0x00000168)
int DENSITY_400
介于DENSITY_XHIGH
(320 dpi)和DENSITY_XXHIGH
(480 dpi)之间的屏幕的中等密度。 这不是应用程序应该定位的密度,而是依靠系统为它们缩放其DENSITY_XXHIGH
资产。
常量值:400(0x00000190)
int DENSITY_420
介于DENSITY_XHIGH
(320 dpi)和DENSITY_XXHIGH
(480 dpi)之间的屏幕的中等密度。 这不是应用程序应该设定的密度,而是依靠系统来为他们缩放DENSITY_XXHIGH
资产。
常量值:420(0x000001a4)
int DENSITY_560
介于DENSITY_XXHIGH
(480 dpi)和DENSITY_XXXHIGH
(640 dpi)之间的屏幕的中等密度。 这不是应用程序应该定位的密度,而是依靠系统为它们DENSITY_XXXHIGH
资产。
常量值:560(0x00000230)
int DENSITY_TV
这是一个次要密度,为一些常见的屏幕配置添加。 建议应用程序通常不将该目标作为一级密度 - 也就是说,不要为此密度提供特定图形,而是允许平台根据需要从其他密度(通常为DENSITY_HIGH
)进行缩放。 在大多数情况下(例如在Drawable
使用位图),平台可以在加载时执行此比例缩放,所以唯一的代价是一些轻微的启动运行时间开销。
该密度原来是为了与720p电视屏幕相对应而引入的:1080p电视机的密度为DENSITY_XHIGH
,这里的值为以720p运行的电视机提供相同的UI尺寸。 当这些设备具有1280x720显示器时,它也可用于7英寸平板电脑。
常量值:213(0x000000d5)
int DENSITY_XXXHIGH
标准量化DPI用于超高密度屏幕。 应用程序通常不应该担心这种密度; 依靠XHIGH图形扩大到几乎所有情况下都足够了。 这种密度的典型用途是4K电视屏幕 - 3840x2160,这是2倍于在DENSITY_XHIGH上运行的传统高清1920x1080屏幕。
常量值:640(0x00000280)
int DENSITY_DEVICE_STABLE
该设备的密度稳定。
该值在运行时不变,可能不会反映当前的显示密度。 要获取特定显示器的电流密度,请使用densityDpi
。
float density
显示器的逻辑密度。 这是密度无关像素单位的缩放系数,其中一个DIP在大约160 dpi的屏幕上(例如240x320,1.5“x2”屏幕)上的一个像素,提供系统显示的基线。 因此在160dpi的屏幕上,这个密度值将是1; 在120 dpi的屏幕上它将是0.75; 等等
该值并不完全遵循真实的屏幕尺寸(如 xdpi
和 ydpi
所给出的,而是用于基于显示dpi的总体变化逐步缩放整个UI的尺寸。例如,240x320屏幕将具有即使其宽度为1.8“,1.3”等,但是,如果屏幕分辨率增加到320x480,但屏幕尺寸保持1.5“x2”,则密度将增加(可能为1.5)。
也可以看看:
int densityDpi
屏幕密度表示为每英寸点数。 可以是DENSITY_LOW
, DENSITY_MEDIUM
,或DENSITY_HIGH
。
float scaledDensity
显示器上显示的字体缩放比例。 这与density
相同,只是可以根据用户对字体大小的偏好在运行时以较小的增量进行调整。
boolean equals (Object o)
指示其他某个对象是否“等于”这一个。
equals
方法在非空对象引用上实现等价关系:
x
, x.equals(x)
should return true
. x
and y
, x.equals(y)
should return true
if and only if y.equals(x)
returns true
. x
, y
, and z
, if x.equals(y)
returns true
and y.equals(z)
returns true
, then x.equals(z)
should return true
. x
and y
, multiple invocations of x.equals(y)
consistently return true
or consistently return false
, provided no information used in equals
comparisons on the objects is modified. x
, x.equals(null)
should return false
. equals
类的方法Object
实现对象上最可能的等价关系; 也就是说,对于任何非空参考值x
和y
,当且仅当x
和y
指向同一对象( x == y
的值为true
)时,此方法返回true
。
请注意,无论何时重写此方法,通常都必须重写 hashCode
方法,以维护 hashCode
方法的一般合同,该方法声明相等对象必须具有相同的哈希代码。
Parameters | |
---|---|
o |
Object : the reference object with which to compare. |
Returns | |
---|---|
boolean |
true if this object is the same as the obj argument; false otherwise. |
boolean equals (DisplayMetrics other)
如果这些显示指标等于其他显示指标,则返回true。
Parameters | |
---|---|
other |
DisplayMetrics : The display metrics with which to compare. |
Returns | |
---|---|
boolean |
True if the display metrics are equal. |
int hashCode ()
返回对象的哈希码值。 为了散列表的好处而支持该方法,例如由HashMap
提供的HashMap
。
一般合约 hashCode
是:
hashCode
method must consistently return the same integer, provided no information used in equals
comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. equals(Object)
method, then calling the hashCode
method on each of the two objects must produce the same integer result. equals(java.lang.Object)
method, then calling the hashCode
method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables. 尽可能合理实用,类Object
定义的hashCode方法确实为不同的对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但Java TM编程语言不需要此实现技术。)
Returns | |
---|---|
int |
a hash code value for this object. |
String toString ()
返回对象的字符串表示形式。 通常, toString
方法会返回一个“文本表示”此对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。
类Object
的toString
方法将返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @
”以及对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Returns | |
---|---|
String |
a string representation of the object. |