手机屏幕具有不同的尺寸大小,如何编写一次应用程序就可以在不同的手机屏幕及不同手机分辨率中正常且美观显示出来呢?那就需要考虑长度单位的使用。长度单位分相对单位和绝对单位两种。相对单位主要包括:px、sp、dp、dip,绝对单位包括:pt、in、mm。一般用相对单位,而不用绝对单位。Android长度单位的使用几乎在每一个示例中都涉及,在这里主要是做一次总结,阐述长度单位的具体含义,不举例说明其具体用法。
(1)Android长度单位含义
Android长度单位具体含义如表4-3所示。
表4-3 Android长度单位含义详解
(2)Android长度单位应用总结
在开发过程中,尽量使用dp作为空间大小单位,sp作为文字相关大小单位。
1)设置字体的大小一般使用sp,用此单位的字体能够根据用户设置字体的大小而自动缩放。
2)设置表示长度、高度等属性时可以使用dp或sp。
3)空间等相对距离一般使用dp(dip)随着密度变化,对应的像素数量也变化,但并没有直接的相对比例的变化。
4)px与实际像素有关,还与密度有关。dp和sp和实际像素没有关系,对于一定分辨率但不同密度的屏幕,px单位的应用可能会导致长度的相对比例的变化。(www.xing528.com)
(3)密度与分辨率
密度值表示每英寸有多少个显示点,与分辨率是两个概念。
各自Android手机屏幕密度(density)标准是:HVGA屏的density=160;QVGA屏density=120;WVGA屏density=240;WQVGA屏density=120。
具体的应用运算关系:假设分辨率是x*y,密度为d,屏幕实际大小为a*b那么关系为x*y=d*a*b(约等于)。
不同density下屏幕分辨率信息不同。density=240时,屏幕实际分辨率为480dip*800dip;density=120时,屏幕实际分辨率为240px*400px(两个点对应一个分辨率)。
(4)密度与分辨率对比总结
1)在相同密度(即同一实体屏幕)不同分辨率的情况下,与实体密度无关的相对单位(sp和dp)显示正常。
2)在相同分辨率不同密度的情况下,都用的标准密度,所以分析的意义不是很大。
(5)Android控件宽度和长度设置
一般情况下,无须为文本控件或者编辑控件的宽和高设置具体的值,可以使用相对设置,便于实现自适应。如android:layout_width="fill_parent",定义当前视图在屏幕上的可以使用的宽度,fill_parent填充整个屏幕;android:layout_width="wrap_content",则表示的是控件的宽度是随着控件内容的多少自动调整宽度。在实际项目开发中,一般控件的长度可以这样设置:android:layout_width="fill_parent",而宽度则是:android:layout_height="wrap_content",也可以根据实际需要进行设置。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。