Android 基础知识

Android - 主页 Android - 概述 Android - 下载安装和设置 Android - Studio IDE Android - 架构 Android - 应用程序组件 Android - Hello World 示例 Android - 资源 Android - 活动 Android - 服务 Android - 广播接收器 Android - 内容提供者 Android - 片段 Android - Intents/Filters

Android - 用户界面

Android - UI 布局 Android - UI 控件 Android - 事件处理 Android - 样式和主题 Android - 自定义组件

Android 高级概念

Android - 拖放 Android - 通知 Android - 基于位置的服务 Android - 发送电子邮件 Android - 发送短信 Android - 拨打电话 Android - 发布应用程序

Android 实用示例

Android - 警报对话框 Android - 动画 Android - 音频捕捉 Android - 音频管理器 Android - 自动完成 Android - 最佳实践 Android - 蓝牙 Android - 相机 Android - 剪贴板 Android - 自定义字体 Android - 数据备份 Android - 开发者工具 Android - 模拟器 Android - Facebook 集成 Android - 手势 Android - 谷歌地图 Android - 图像效果 Android - 图像切换 Android - 内部存储 Android - JetPlayer Android - JSON 解析器 Android - Linkedin 集成 Android - 旋转加载器 Android - 本地化 Android - 登录应用 Android - 媒体播放器 Android - 多点触控 Android - 导航 Android - 网络连接 Android - NFC 指南 Android - PHP/MySQL Android - 进度圈 Android - 进度条 Android - 推送通知 Android - 渲染脚本 Android - RSS 阅读器 Android - 屏幕投射 Android - SDK 管理器 Android - 传感器 Android - 会话管理 Android - 共享首选项 Android - SIP 协议 Android - 拼写检查器 Android - SQLite 数据库 Android - 支持库 Android - 测试 Android - 文字转语音 Android - TextureView Android - Twitter 集成 Android - UI 设计 Android - UI 模式 Android - UI 测试 Android - WebView 布局 Android - Wi-Fi Android - Widgets Android - XML 解析器

Android 其他

Android - 面试问题 Android - 有用的资源 Android - 测验


Android - UI 布局

用户界面的基本构建块是一个 View 视图对象,它由 View 类创建,占据屏幕上的一个矩形区域,负责绘图和事件处理。 View 视图是小部件的基类,用于创建交互式 UI 组件,如按钮、文本字段等。

ViewGroupView 的子类,并提供不可见的容器来容纳其他 View 视图或其他 ViewGroup 并定义它们的布局属性。

在第三层,我们有不同的布局,它们是 ViewGroup 类的子类,典型的布局定义了 Android 用户界面的视觉结构,可以在运行时使用 View/ViewGroup 对象创建,也可以声明 使用简单的 XML 文件 main_layout.xml 进行布局,该文件位于项目的 res/layout 文件夹中。

布局

布局参数

本教程更多地是关于基于 XML 文件中定义的布局创建 GUI。 布局可以包含任何类型的小部件,例如按钮、标签、文本框等。 以下是具有 LinearLayout 的 XML 文件的简单示例 −

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >
   
   <TextView android:id="@+id/text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="This is a TextView" />
      
   <Button android:id="@+id/button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="This is a Button" />
      
   <!-- More GUI components go here  -->
   
</LinearLayout>

创建布局后,您可以在 Activity.onCreate() 回调实现中从应用程序代码加载布局资源,如下所示 −

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
}

Android 布局类型

Android 提供了许多布局,您将在几乎所有 Android 应用程序中使用它们来提供不同的视图、外观和感觉。

序号 布局 & 描述
1 线性布局

LinearLayout 是一个视图组,可将所有子项在一个方向(垂直或水平)上对齐。

2 相对布局

RelativeLayout 是一个在相对位置显示子视图的视图组。

3 表格布局

TableLayout 是将视图分组为行和列的视图。

4 绝对布局

AbsoluteLayout 使您能够指定其子项的确切位置。

5 框架布局

FrameLayout 是屏幕上的占位符,可用于显示单个视图。

6 列表视图

ListView 是一个显示可滚动项目列表的视图组。

7 网格视图

GridView 是一个 ViewGroup,它在二维、可滚动的网格中显示项目。


布局属性

每个布局都有一组属性,这些属性定义了该布局的视觉属性。 所有布局之间几乎没有共同的属性,它们是特定于该布局的其他属性。 以下是通用属性,将应用于所有布局:

序号 属性 & 描述
1

android:id

这是唯一标识视图的 ID。

2

android:layout_width

这是布局的宽度。

3

android:layout_height

这是布局的高度

4

android:layout_marginTop

这是布局顶部的边距。

5

android:layout_marginBottom

这是布局底部的边距。

6

android:layout_marginLeft

这是布局左侧的边距。

7

android:layout_marginRight

这是布局右侧的边距。

8

android:layout_gravity

这指定了子视图的定位方式。

9

android:layout_weight

这指定了布局中应将多少额外空间分配给视图。

10

android:layout_x

这指定了布局的 x 坐标。

11

android:layout_y

这指定了布局的 y 坐标。

12

android:layout_width

这是布局的宽度。

13

android:paddingLeft

这是为布局填充的左侧填充。

14

android:paddingRight

这是为布局填充的右侧填充。

15

android:paddingTop

这是为布局填充的顶部填充。

16

android:paddingBottom

这是为布局填充的底部填充。

这里的宽度和高度是布局/视图的尺寸,可以用 dp(与密度无关的像素)、sp(与比例无关的像素)、pt(点,即 1/72 英寸)、px( 像素),mm(毫米),最后是(英寸)。

您可以使用精确的测量值指定宽度和高度,但更常见的是,您将使用这些常量之一来设置宽度或高度 −

  • android:layout_width=wrap_content 告诉您的视图将自身调整到其内容所需的尺寸。

  • android:layout_width=fill_parent 告诉你的视图变得和它的父视图一样大。

Gravity 属性在定位视图对象中起着重要作用,它可以采用以下常量值中的一个或多个(用"|"分隔)。

常数 描述
top 0x30 将对象推到其容器的顶部,而不改变其大小。
bottom 0x50 将对象推到其容器的底部,而不改变其大小。
left 0x03 将对象推到其容器的左侧,而不改变其大小。
right 0x05 将对象推到其容器的右侧,而不改变其大小。
center_vertical 0x10 将对象放在其容器的垂直中心,不改变其大小。
fill_vertical 0x70 如果需要,增加对象的垂直尺寸,使其完全填满其容器。
center_horizontal 0x01 将对象放在其容器的水平中心,不改变其大小。
fill_horizontal 0x07 如果需要,增加对象的水平尺寸,使其完全填满其容器。
center 0x11 将对象放在其容器的垂直和水平轴中心,不改变其大小。
fill 0x77 如果需要,增加对象的水平和垂直大小,使其完全填满其容器。
clip_vertical 0x80 可以设置为将子项的顶部和/或底部边缘剪裁到其容器边界的附加选项。剪辑将基于垂直重力:顶部重力将剪辑底部边缘,底部重力将剪辑顶部边缘,两者都不会剪辑两个边缘。
clip_horizontal 0x08 可以设置为将子项的左边缘和/或右边缘剪裁到其容器边界的附加选项。剪辑将基于水平重力:左重力将剪辑右边缘,右重力将剪辑左边缘,两者都不会剪辑两个边缘。
start 0x00800003 将对象推送到其容器的开头,而不更改其大小。
end 0x00800005 将对象推到其容器的末尾,而不改变其大小。

查看标识

视图对象可能具有分配给它的唯一 ID,它将在树中唯一标识视图。 XML 标记内的 ID 语法是 −

android:id="@+id/my_button"

以下是 @ 和 + 符号的简要说明−

  • 字符串开头的符号 (@) 表示 XML 解析器应该解析和扩展 ID 字符串的其余部分,并将其标识为 ID 资源。

  • 加号 (+) 表示这是一个新的资源名称,必须创建并添加到我们的资源中。 要创建视图对象的实例并从布局中捕获它,请使用以下命令 −

Button myButton = (Button) findViewById(R.id.my_button);