Android常见页面布局

在Android应用程序中,界面由布局和控件组成。布局如框架,控件如砖瓦。

        View控件

        Android所有的UI元素都是通过View控件ViewGroup容器构建的。在一个应用程序中ViewGroup容器可以包含普通的View控件,也可以包含ViewGroup容器。

          注意!Android应用程序中的每个界面必须有且只有一个ViewGroup容器

界面布局的编写方式

                在XML布局文件中编写布局

        直接在res/layout文件夹下的activity_main.xml文件中编写。如图将根标签中更改为要使用的界面布局即可。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:textColor="#f00"
        android:textSize="18sp"
        app:layout_centerInParent="true"/>
</RelativeLayout>

                在java代码中编写布局

          Android中所有的布局和控件的对象都可通过new关键字创建,将创建的View控件添加到ViewGroup容器中,就能在布局界面中显示View控件。如:

RelativeLayout relativeLayout=new RelativeLayout(this)
RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams{
                                       RelativeLayout.LayoutParams.WRAP_CONTENT,
                                       RelativeLayout.LayoutParams.Wrap_CONTENT);
//addRule参数对应RelativeLayout的XML布局属性
TextView textView=new TextView(this);        //创建TextView控件
textView.setText("Hello Word!");            //设置TextView控件的文字内容
//添加TextView对象和TextView布局属性
relativeLayout.addView(textView, params);
setContView(relativeLayout);        //设置在Activity中显示RelativeLayout

不管用那种方式编写布局,它们控制的的界面行为本质是一样的

界面布局的通用属性

android:id      设置布局的标识,当前布局的唯一标识,在XML中通过"@+id/属性名称"定义。

在java代码中通过findViewById()方法传入该int值获取布局对象

android:layout_width        设置布局宽度                

fill_parent:表示该布局的宽度与父容器的宽度相同
match_parent与fill_parent作用相同,推荐使用fill_parent
wrap_content表示该布局的宽度能恰好包裹它的内容

android:layout_height        设置布局高度

fill_parent:表示该布局的宽度与父容器的高度相同
match_parent与fill_parent作用相同,推荐使用fill_parent
wrap_content表示该布局的宽度能恰好包裹它的内容

android:background        设置布局的背景,可引用图片颜色资源

android:layout_margin       设置当前布局与屏幕边界,周围布局与控件的距离

相似的还有layout_marginTop,layout_marginButtom,layout_marginRight,layout_marginLeft

android:padding          设置当前布局与该布局中空间的距离

相似的还有paddingTop,paddingButtom,paddingLeft,paddingRight,

线性布局

        线性布局LinearLayout,线性布局内的子控件通常被指定为水平或竖直排序。

线性布局中常用的两个属性

android:orientation        设置布局内的控件排列顺序,可选值vertical和horizontal

vertical表示LinearLayout内控件从上到下依次竖直排序
horizontal表示LinearLayout内控件从左到右依次水平排序

android:layout_weight        在布局内设置控件权重,属性值可直接写int值,通过设置权重使布局内的控件按照权重比显示大小

相对布局

        相对布局RelativeLayout通过相对定位来指定子控件的位置,

常用的子控件属性表

android:layout_centerlnParent设置当前控件位于父布局的中央位置
android:layout_ceneterVertical设置当前控件位于父布局的垂直居中位置
android:layout_centerHorizontal设置当前控件位于父控件水平居中位置
android:layout_above设置当前控件位于某控件上方
android:layout_below设置当前控件位于某控件下方
android:layout_toLeftOf设置当前控件位于某控件左侧
android:layout_toRightOf设置当前控件位于某控件右侧
android:layout_alignParentTop设置当前控件是否与父控件顶端对齐
android:layout_alignParentLeft设置当前控件是否与父控件左对齐
android:layout_alignParentRight设置当前控件是否与父控件右对齐
android:layout_alignParentBottom设置当前控件是否与父控件低端对齐
android:layout_alignTop设置当前控件的上边界与某控件的上边界对齐
android:layout_alignBottom设置当前控件的下边界与某控件的下边界对齐
android:layout_alignLeft设置当前控件左边界与某控件的左边界对齐
android:layout_alignRight设置当前控件的右边界与某控件的右边界对齐

表格布局

        表格布局TableLayout用行列的形式来管理控件,可通过TableRow布局或控件来控制表格的行数,在TableRow布局中添加控件来控制表格的列数。

        TableLayout继承自LinearLayout,所以它支持LinearLayout的所有属性,此外还有其他常用属性

android:stretchColumns

设置可拉伸的列;

当android:stretchColumns="0"则第一列可拉伸

android:shrinkColumns设置可收缩的列。
android:collapseColumns设置可隐藏的列

常用的控件属性

android:layout_coulmn

设置该控件显示的位置,

当android:layout_coulmn="0"则在第2个位置显示

android:layout_span设置该控件占据几列,默认为1列

在TableLayout中,列的宽度由该列中最宽的那个单元格(控件)决定,整个的宽度取决于父容器

帧布局

        帧布局FrameLayout创建一块空白区域,添加到该区域的每一个字控件占一帧,帧会一个一个叠加到一起,后加入的控件会叠加到上一个控件的上层,默认时所有控件会与布局的左上角对齐。

特殊属性

android:foreground设置FrameLayout容器的前景图像(始终在所有子控件之上)
android:foregroundGravity设置前景图像显示的位置

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值