获取手机屏幕属性DisplayMetrics

来源:互联网 发布:递归迷宫生成算法 编辑:程序博客网 时间:2024/05/19 13:22

Display是一个机构体,描述了屏幕的一些基本信息,如屏幕的尺寸啊,密度啊。

DisplayMetrics displayMetrics = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);TextView t = (TextView) findViewById(R.id.textView1);t.setText(displayMetrics.toString());
Defy+的实验结果。
11

N7


N7屏幕按键占了64个像素。


一些概念:

Screen Size 指屏幕的物理大小,对角线多少英寸。通常分为small, normal, large, extra large

DIP(Density Independent Pixel\dp)密度独立像素。假设有两款手机,物理尺寸一样大,但一个屏幕分辨率为320x480,另一个为480x640

如果程序中用像素为单位来画一个按钮。像素大的那个手机的按钮看起来会比像素小的那个小很多。如果是用DIP为单位来画按钮,那么

两款设备上的按钮看起来会一样大。在UI layout中应该使用dp。在大约160dpi的屏幕上,一个DIP正好是一个物理像素。160dpi是系统定义

medium密度屏幕的基准线。在运行时,系统会根据具体的屏幕密度把dp转为px。公式:px = dp * (dpi/160)。如,在240dpi的屏幕上

1dp等于1.5个物理像素。

DPI(dots per inch)通常来描述屏幕的一个物理区域内有多少像素。Screen Density(屏幕密度)的low, high由DPI

来描述。android将屏幕密度归类为4组,low, medium, high, extra high。

Resolution(分辨率)一个屏幕上的物理像素数,通常为了支持多种屏幕,程序不应该直接使用分辨率,而应该考虑

屏幕尺寸(物理大小),密度.



各成员:

density:

屏幕的逻辑密度,是用来计算DIP的一个系数(比例因子)。160dpi的屏幕上1DIP正好是一个物理pixel,我的defy+的density是1.5。这个

值并不严格按照dpi来计算。

xdpi: x轴物理pixel/inch








原创粉丝点击