一、线性布局-LinearLayout(至上而下布局)



Android UI布局_第1张图片

其中

android:orientation=”vertical”意思为垂直

方向的线性布局,此处的”vertical”可改为”horizontal”,意思是水平方向的线性布局。

android:layout_width=”match_parent”意思为这个控件的宽度占满整个屏幕或者父控件,此处的”match_parent”可改为”wrap_parant”,意思是宽度刚好包含住LinearLayout里面的内容。

常用布局控件:

android:id为控件指定相应的ID

android:text指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串

android:gravity控制这个一个控件的位置,比如居中、靠右、底部、上部等

android:textSize指定控件当中字体的大小

android:background指定该控件所使用的背景色,RGB命名法

android:layout_weight数值为几即该控件占满整个屏幕的数值合之几,比如当前Activity中有2个控件,第一个控件是android:layout_weight=”2″,第二个控件是android:layout_weight=”3″,则,第一个控件占整个屏幕的3/5。

android:height指定控件的高度

android:padding*指定控件的内边距,也就是说控件当中的内容,如android:paddingLeft=”10dip”、android:paddingRight=”10dip”等等。也可以直接android:padding=”10dip”意思是说内边距4面距离都为10.

android:singleLine如果设置为真的话,则将控件的所有内容在同一行当中进行显示

二、表格布局-TableLayout

概述:

TableLayout多用于列表的显示

1、把子元素放到行与列中。

2、不显示行、列和单元格的边界线。

3、单元格不能横跨行,类似于html。


Android UI布局_第2张图片

//这一条语句的意思是:是设置 TableLayout所有行的第二列为拉伸列。也就是说如果每行都有三列的话,剩余的空间由第二列补齐。为0时则是第一列为拉伸列。目的是为了把父控件填满。

三、嵌套布局即多个布局嵌套使用。


Android UI布局_第3张图片


如要实现以下布局:即多个LinearLayout嵌套

//需要注意的是嵌套的LinearLayout权重都是1,即各自占屏幕的一半。

四、相对布局-RelativeLayout

概念:

类似于CSS+DIV布局。

一个控件的位置,决定于他和周围控件的关系。

与其他控件的区别:

相对布局是依赖与和周围控件的关系而决定为位置的,如将A控件放在B控件的下方。

其中以下属性在实际应用中可能经常用到

android:layout_above将该控件的底部至于给定ID的控件之上

android:layout_below将该控件的顶部至于给定ID的控件之下

android:layout_toLeftOf将该控件的右边缘和给定ID的控件的左边缘对齐

android:layout_toRightOf将该控件的左边缘和给定ID的控件的右边缘对齐

android:layout_alignBaseline该控件的baseline和给定ID的控件的baseline对齐

android:layout_alignBottom将该控件的底部边缘与给定ID控件的底部边缘

android:layout_alignLeft将该控件的左边缘与给定ID控件的左边缘对齐

android:layout_alignRight将该控件的右边缘与给定ID控件的右边缘对齐

android:layout_alignTop将给定控件的顶部边缘与给定ID控件的顶部对齐

android:layout_alignParentBottom如果该值为true,则将该控件的底部和父控件的底部对齐

android:layout_alignParentLeft如果该值为true,则将该控件的左边与父控件的左边对齐

android:layout_alignParentRight如果该值为true,则将该控件的右边与父控件的右边对齐

android:layout_alignParentTop如果该值为true,则将控件的顶部与父控件的顶部对齐

android:layout_centerHorizontal如果值为真,该控件将被至于水平方向的中央

android:layout_centerInParent如果值为真,该控件将被至于父控件水平方向和垂直方向的中央

android:layout_centerVertical如果值为真,该控件将被至于垂直方向的中央

通俗的理解 Padding 为内边框,Margin 为外边框

对应的属性为

android:layout_marginBottom=”25dip”

android:layout_marginLeft=”10dip”

android:layout_marginTop=”10dip”

android:layout_marginRight=”10dip”

android:paddingLeft=”1dip”

android:paddingTop=”1dip”

android:paddingRight=”1dip”

android:paddingBottom=”1dip”

如果左右上下都是相同的设置则可以直接设置

android:layout_margin=”10dip”

android:padding=”5dip”

四、帧布局和网格布局-FrameLayout & GridLayout

FrameLayout

帧布局,在这种布局下,每个添加的子控件都被放在布局的左上角,并覆盖在前一个子控件的上层;此外,FrameLayout中的子控件的位置不能被指定。

GridLayout

网格布局,自Android4.0版本(API level 14)后,新增的网格布局。

注意:如果要达到网格的效果,推荐使用LinearLayout来实现,因为使用GridLayout会产生如下问题:

不能同时在(x,y)轴方向上进行控件的对齐;

当多层布局嵌套的时候会出现性能问题;

不能稳定地支持一些支持自由编辑布局的工具。

计算器界面

用GridLayout和Button模仿了一个计算器的按键界面。

gridlayout_calculator.jpg

布局源码


文/Ruj(作者)

原文链接:http://www.jianshu.com/p/4f0a7d319c89

著作权归作者所有,转载请联系作者获得授权,并标注“作者”。

文/Ruj(作者)

原文链接:http://www.jianshu.com/p/4f0a7d319c89

著作权归作者所有,转载请联系作者获得授权,并标注“作者”。

更多相关文章

  1. 系出名门Android(7) - 控件(View)之ZoomControls, Include...
  2. Android opencv(三) 边缘检测Sobel、Canny
  3. Android在Activity中获得控件宽高和截屏操作
  4. Android常用控件之ExpandableList的使用
  5. android 常见布局及控件的属性详解
  6. Android布局动画之animateLayoutChanges与LayoutTransition
  7. Android布局详解
  8. Android--EditText控件属性汇总

随机推荐

  1. Android—Http连接之GET/POST请求
  2. Android(安卓)app——常见控件的使用方法
  3. Android重点
  4. Android之如何打开USB调试模式
  5. Android TextView实现复制和超链接跳转
  6. android 开发中遇到的ERROR经常长期更新
  7. 使用Android提供的android-support-v7出
  8. Android 根文件系统分析(1)
  9. How to install apk files on your googl
  10. 我会经常在这个地址下面共享自己保存的几