2011年5月18日星期三

  Android界面布局——视图/容器易混淆点总结

   最近做的项目主要是对andoirdapp的ui进行布局优化,由于android基础孱弱,在布局的时候对一些容易混淆的概念不是很清晰,因此经常花很多时间去调一些本来很简单的布局。现在进行一点简单总结,省得以后再犯。

1. android:gravity / android:layout_gravity / android:layout_weight

android:gravity 用来设置视图,可以设置为left、center、right等等值。比如在一个edittext空间中将gravity设为right,那么它里面的文字就会局右显示。

android:layout_graivity 用来设置容器,值也可以设置为left、center等。比如讲一个edittext的layout_gravity属性设置为right,那么整个edittext空间就会位于它的父容器的右边。

android:layout_weight 用来设置视图,它可以来分配一个控件相对于容器中其他控件的大小重要性。假设一个容器有3个控件,layout_weight值为1(最高值),而其他控件的值为0。这时,值为1的控件将占用容器中的空白空间。

2. android:padding / android:layout_margin

android:padding:用来设置视图的外边界和其中显示的内容之间的距离。

android:layout_margin:用来设置空间边界相对于其父容器边界的距离。

与之对应的还有android:leftpadding, android:rightpadding, android:toppadding, android:bottompadding以及android:layout_marginleft, android:layout_marginright, android:layout_margintop, android:layout_marginbottom。

这两者的关系与android:gravity/android:layout_gravity之间的关系是一样的,一个用于视图,一个用于容器。

3. 如果要强制界面横屏显示,可以在oncreate函数里面加入如下代码

java代码

import android.content.pm.activityinfo;

...

setrequestedorientation(activityinfo.screen_orientation_landscape);

import android.content.pm.activityinfo;

...

setrequestedorientation(activityinfo.screen_orientation_landscape);

4. 全屏显示:

java代码

this.requestwindowfeature(window.feature_no_title);

this.getwindow().setflags(windowmanager.layoutparams.type_status_bar,

windowmanager.layoutparams.type_status_bar);

没有评论:

发表评论