Android UI教程 - Android布局

2018-01-09 14:51 更新

Android UI教程 - Android布局


测量单位

当在Android UI上指定元素的大小时,您应该知道以下测量单位:

dp是密度独立的像素。 1 dp等于160dpi上的一个像素        屏幕。         这是指定时的推荐测量单位        视图的维度。 160dpi屏幕是基线密度        假设由Android。 在引用a时,可以指定“dp"或“dip"        密度无关像素。

sp是与scale无关的像素。这类似于dp,建议用于指定字体大小。

点 - 点。 基于物理屏幕大小,点被定义为1/72英寸。

px - 像素。 对应于屏幕上的实际像素。 使用本机不是        推荐,因为您的UI可能无法正确显示在不同的设备上        屏幕分辨率。



将Dp转换为Px

将dp转换为px(像素)的公式如下:

pixels = dp * (dpi / 160)

其中dpi为120,160,240或320。

如果在235 dpi屏幕上的按钮,其实际宽度为

160 * (240/160) = 240 px.

当在作为160dpi设备的180dpi模拟器上运行时,其实际像素现在是160 *(160/160)= 160像素。

在这种情况下,一个dp等于一个px。

您可以使用View对象的getWidth()方法获取其宽度(以像素为单位):

public void onClick(View view) {
    Toast.makeText (this,String.valueOf(view.getWidth()),Toast.LENGTH_LONG).show();
}

屏幕密度

Android定义和识别四个屏幕密度:

  • Low density (ldpi) - 120 dpi
  • Medium density (mdpi) - 160 dpi
  • High density (hdpi) - 240 dpi
  • Extra High density (xhdpi) - 320 dpi

Nexus S的屏幕有4英寸屏幕对角线,屏幕宽度为2.04英寸。

其分辨率为480(宽)800(高)像素。 与480像素蔓延宽度为2.04英寸,结果是像素密度为约235每英寸点数(dpi)。

Nexus S被认为是hdpi设备,因为其像素密度最接近240dpi。

使用dp单元确保您的视图总是以正确的比例显示,而不管屏幕密度。



以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号