Android常见界面布局

Android常见界面布局

1.View视图

​ Android中所有的UI元素都是通过View与ViewGroup构建的,对于一个Android应用用户界面,ViewGroup作为容器盛装界面中的控件,它可以包含普通的View控件,也可以包含ViewGroup。

2.界面布局编写方式

2.1编写方式

在XML文件中编写布局:推荐此种方式(高内聚,低耦合)

​ 有效的将界面中的布局代码与Java代码隔离,使程序结构更加清晰

在Java代码中编写布局

​ 在Android中所有布局和控件的对象可以通过new关键字创造出来,将创建的View控件添加到ViewGroup布局中,从而实现View控件在布局界面中显示

2.2具体实现

2.2.1XML文件中

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
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="使用XML布局文件控制UI界面"
android:textColor="#ff0000"
android:textSize="18sp"
android:layout_centerInParent="true"/>
</RelativeLayout>

2.2.2Java代码

RelativeLayout relativeLayout = new RelativeLayout(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT); //设置布局中的控件居中显示
TextView textView = new TextView(this); //创建TextView控件
textView.setText("Java 代码实现界面布局"); //设置TextView的文字内容
textView.setTextColor(Color.RED); //设置TextView的文字颜色
textView.setTextSize(18); //设置TextView的文字大小
relativeLayout.addView(textView, params); //添加TextView对象和TextView的布局属性
setContentView(relativeLayout); //设置在Activity中显示RelativeLayout

3.界面布局的通用属性

3.1常用布局

布局名称特点
线性布局以水平或垂直方向排列
相对布局通过相对定位排列
帧布局开辟空白区域,帧里的控件叠加
表格布局表格形式排列

3.2通用属性

属性名称功能描述
android:id设置布局的标识
android:layout_width设置布局的宽度
android:layout_height设置布局的高度
android:background设置布局的背景
android:layout_margin设置布局与屏幕边界或与周围控件的距离
android:layout_padding设置当前布局与该布局中控件的距离

4.线性布局

4.1定义

指定布局内的子控件水平或竖直排列

语法格式

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 属性 = "属性值" ......>
</LinearLayout>

4.2特殊属性

属性名称功能描述
android:orientation设置布局内控件的排列顺序
android:layout_weight在布局内设置控件权重,属性值可直接写int值

属性android:orientation的值为可选值,可选值为vertical和horizontal。
(1) vertical:表示LinearLayout布局内控件依次从上到下竖直排列。
(2)horizontal:表示LinearLayout布局内控件依次从左到右水平排列。
属性android:layout_weight:
(1)该属性被称为权重,通过设置该属性值,可使布局内的控件按照权重比显示大小。
(2)在进行屏幕适配时起到关键作用。

4.3补充

LinearLayout布局中的android:layout_width属性值不可设为wrap_content。因为LinearLayout的优先级比Button高,如果设置为wrap_content,则Button控件的android:layout_weight属性会失去作用。

注意:当控件使用权重属性时,布局宽度属性值通常设置为0dp。

5.相对布局

5.1定义

RelativeLayout(相对布局)通过相对定位的方式指定子控件的位置。

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
属性 = "属性值"
......>
</RelativeLayout>

5.2子控件属性

属性名称功能描述
android:layout_centerInParent设置当前控件位于父布局的中央位置
android:layout_centerVertical设置当前控件位于父布局的垂直居中位置
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设置当前控件的右边界与某控件的右边界对齐

6.表格布局

6.1定义

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

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
属性 = "属性值">
<TableRow>
UI控件
</TableRow>
UI控件
......
</TableLayout>

6.2属性

表格布局属性

属性名称功能描述
android:stretchColumns设置该列被拉伸
android:shrinkColumns设置该列被收缩
android:collapseColumns设置该列被隐藏

表格布局中控件的常用属性

属性名称功能描述
android:layout_column设置该单元显示位置
android:layout_span设置该单元格占据几行,默认为1行

7.帧布局

7.1定义

FrameLayout(帧布局)用于在屏幕上创建一块空白区域,添加到该区域中的每个子控件占一帧,这些帧会一个一个叠加在一起,后加入的控件会叠加在上一个控件上层。默认情况下,帧布局中的所有控件会与左上角对齐。在XML布局文件中定义FrameLayout的基本语法格式如下所示。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
属性 ="属性值">
</FrameLayout>

7.2属性

属性名称功能描述
android:foreground设置帧布局容器的前景图像(始终在所有子控件之上)
android:foregroundGravity设置前景图像显示的位置
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值