DisplayMetrics类

来源:互联网 发布:android 热启动优化 编辑:程序博客网 时间:2024/04/30 08:28
DisplayMetrics类




DisplayMetrics类 获取手机显示屏的基本信息 包括尺寸、密度、字体缩放等信息
public class DisplayMetrics extends Object
 
java.lang.Object
 ↳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
Added in API level 4
整个系统使用的参考密度,系统默认参考密度.
常数值: 160 (0x000000a0)
public static final int DENSITY_HIGH
Added in API level 4
高密度显示屏的标准量化DPI
常数值: 240 (0x000000f0)
public static final int DENSITY_LOW
Added in API level 4
低密度显示屏的标准量化DPI
常数值: 120 (0x00000078)
public static final int DENSITY_MEDIUM
Added in API level 4
中密度显示屏的标准量化DPI
常数值: 160 (0x000000a0)
public static final int DENSITY_TV
Added in API level 13
这是次要密度,添加到一些常见的显示屏设置。建议应用程序不要把该常量作为主要密度,也就是说不要为这密度提供特定的图形,合理的是允许平台从别的密度(通常是DENSITY_HIGH高密度)缩放到这个密度。在大多数情况下(比如在Drawable里使用bitmaps), 平台能在load time(载入的时间里)实施缩放,所以唯一的开销是微小的启动运行开销。
该密度起先是为了对应720p TV显示屏而介绍的,1080p 电视的密度是DENSITY_XHIGH, 这里的值给720p TV提供了同样的UI尺寸。当这些设备显示屏是1280x720时,7" tablets(平板)里也有使用。
常量值: 213 (0x000000d5)
public static final int DENSITY_XHIGH
Added in API level 9
超高密度显示屏的标准量化DPI。
常数值: 320 (0x00000140)
public static final int DENSITY_XXHIGH
Added in API level 16
extra-extra-high-density(超超高密度)显示屏的标准量化DPI。应用程序基本上不需要当心这个密度, 相信在所有情况下从XHIGH图形放大到该密度也应该该足够使用。
常数值: 480 (0x000001e0)
Fields(字段)


public float density
Added in API level 1
显示屏的逻辑密度。这是密度独立像素(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
Added in API level 4
用dots-per-inch(dpi)表示显示屏密度。可能是DENSITY_LOW, DENSITY_MEDIUM, 或 DENSITY_HIGH。
public int heightPixels
Added in API level 1
显示的绝对像素高度
public float scaledDensity
Added in API level 1
显示字体的缩放因子。 跟density(密度)一样,除了它可能会在运行时基于用户偏好的字体大小以较小的增量调整。
public int widthPixels
Added in API level 1
显示的绝对像素宽度
public float xdpi
Added in API level 1
X方向上每英寸显示屏物理像素
public float ydpi
Added in API level 1
Y方向上每英寸显示屏物理像素
公共构造函数


public DisplayMetrics ()
Added in API level 1
 
公共方法


public boolean equals (Object o)
Added in API level 1
让该实例跟指定对象进行比较,确定他们是否相等。为了让他们相等,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)
Added in API level 17
如果这些display metrics 跟别的 display metrics 相等,则返回true
参数
  other 要比较的另一个 display metrics
返回值
如果两个display metrics相等,则返回true
 
public int hashCode ()
Added in API level 1
为对象返回一个整数hash code(哈希码)。 任何2个对象的方法equals(Object)返回值为true时,一定返回同样的哈希值。也就是说,对象的子类要么重写这2个方法(equals(Object o) 和 hashCode() ),要么一个都不重写。
运行过程中哈希值不能改变,除非在equals方法里用的信息发生改变。
参见 Writing a correct hashCode method 如果你打算实现自己的hashCode 方法
返回值
对象的哈希值
public void setTo (DisplayMetrics o)
Added in API level 1
 
public void setToDefaults ()
Added in API level 1
 
public String toString ()
Added in API level 1
返回一个人类可读的对象描述。 建议子类重写这个方法,提供对象类型和数据的实现。默认实现跟以下表达式相同:
   getClass().getName()+'@'+Integer.toHexString(hashCode())
参见 Writing a useful toString method 如果你想实现自己的toString 方法
0 0
原创粉丝点击