最近一直做的是分辨率为400*800的手机程序,整个手机的屏幕大概是 宽480px和高800px吧!于是一直用480px和800px这个标准对照的设计我的控件大小。以前在320*480的分辨率下是用dip作为自己的单位,用320dip和480dip作为标准对照设计自己。做android一年多了,突然自己发现自己对布局的基本单位都还混淆不清,真是悲剧。为了好的程序移植性,在不同的分辨率的手机下,程序的界面都无问题。所以 最好的情况就是用fill_parent和wrap_content这两种属性啦!是在不行的话就用dip,dip有好的伸缩性。以320dip和480dip的标准,在任何不同的分辨率下,可以保证手机的布局不变动。而px的话,就不能保证了哦!
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="120px"
android:layout_marginTop="50px"
>
android:layout_width="120dip"
android:layout_height="wrap_content"
android:text="@string/username"
android:layout_gravity="center"
android:gravity="center"
/>
android:layout_width="200dip"
android:layout_height="wrap_content"
android:hint="@string/namehint"
android:id="@+id/etextname"
android:singleLine="true"
android:selectAllOnFocus="true"
android:layout_gravity="center"
/>
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="120px"
>
android:layout_width="180px"
android:layout_height="wrap_content"
android:text="@string/userpass"
android:layout_gravity="center"
android:gravity="center"
/>
android:layout_width="300px"
android:layout_height="wrap_content"
android:hint="@string/passhint"
android:layout_gravity="center"
android:id="@+id/etextpass"
android:singleLine="true"
android:selectAllOnFocus="true"
android:password="true"
/>
效果为:
附录:一些网上的资料:
px:是屏幕的像素点 in:英寸 mm:毫米 pt:磅,1/72 英寸 dp:一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px dip:等同于dp sp:同dp相似,但还会根据用户的字体大小偏好来缩放。 建议使用sp作为文本的单位,其它用dip 针对dip和px 的关系,做以下概述: HVGA屏density=160;QVGA屏density=120;WVGA屏density=240;WQVGA屏density=120 density值表示每英寸有多少个显示点,与分辨率是两个概念。 不同density下屏幕分辨率信息,以480dip*800dip的 WVGA(density=240)为例 density=120时 屏幕实际分辨率为240px*400px (两个点对应一个分辨率) 状态栏和标题栏高各19px或者25dip 横屏是屏幕宽度400px 或者800dip,工作区域高度211px或者480dip 竖屏时屏幕宽度240px或者480dip,工作区域高度381px或者775dip density=160时 屏幕实际分辨率为320px*533px (3个点对应两个分辨率) 状态栏和标题栏高个25px或者25dip 横屏是屏幕宽度533px 或者800dip,工作区域高度295px或者480dip 竖屏时屏幕宽度320px或者480dip,工作区域高度508px或者775dip density=240时 屏幕实际分辨率为480px*800px (一个点对于一个分辨率) 状态栏和标题栏高个38px或者25dip 横屏是屏幕宽度800px 或者800dip,工作区域高度442px或者480dip 竖屏时屏幕宽度480px或者480dip,工作区域高度762px或者775dip apk的资源包中,当屏幕density=240时使用hdpi 标签的资源 当屏幕density=160时,使用mdpi标签的资源 当屏幕density=120时,使用ldpi标签的资源。 不加任何标签的资源是各种分辨率情况下共用的。 布局时尽量使用单位dip,少使用px