一连鸽了好多天,原因是广东的省考忽然提前报名了,提前了三个月,所以连忙去复习了一下基础,所以这边的我放了一下,差点错过了(悲)。
一、UI 构建体系概述
- 安卓提供两种 UI 构建形式:传统的View 体系、新的 Compose 体系,入门阶段优先学习 View 体系。
- 掌握 View 体系(Java+View)可满足职场基础开发需求,市面上仍有大量基于该体系的产品。
- UI 开发核心:通过控件构建界面元素,将数据展示给用户,实现页面切换(俗称 "画 UI")。
二、核心基础概念
1. View 的定位
- View 是安卓所有 UI 控件的父类,本质是 Java 类,封装后可显示文本、按钮、图片等可视化内容。
- 所有控件均位于
android.view包下,开发时直接调用系统提供的组件即可。
2. 常用基础控件
- TextView:文本显示控件,用于展示文字内容。
- Button:按钮控件,用于触发交互操作。
- EditText:输入框控件,用于接收用户输入。
- ImageView:图片显示控件,用于加载展示图片。
- 其他控件:进度条、开关(Switch)等,按需调用。
三、添加控件的两种方式
1. Java 代码方式(手动创建)
-
步骤 1:创建控件对象。示例:
javaTextView textView = new TextView(this); -
步骤 2:设置控件属性,如字体大小、文本内容、背景色:
javatextView.setTextSize(100); textView.setText("烟抽多了,喉咙痒痒的"); textView.setBackgroundColor(Color.BLUE); -
步骤 3:设置布局参数(宽高):
java//布局 int w = ViewGroup.LayoutParams.MATCH_PARENT; int h = ViewGroup.LayoutParams.WRAP_CONTENT; ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(w,h); -
步骤 4:关联布局,通过 Activity 方法将控件添加到当前页面:
javaaddContentView(textView, layoutParams);
2. XML 布局文件方式(高效便捷)
- 布局文件位置:
res/layout目录下(如activity_main.xml),与MainActivity对应关联。 - 操作方式:
- 可视化操作:直接拖动控件到布局界面(适合快速演示,实际开发不推荐,因为实际运行的时候布局乱七八糟)。
- 代码编辑:切换到
Code视图,按 XML 语法声明控件(开发首选)。
- XML 控件声明规则:
-
开头用
<控件类型>标签,结尾用</控件类型>或自闭合<控件类型/>。例:java<ImageView app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" android:src="@mipmap/ic_launcher_round" android:layout_width="wrap_content" android:layout_height="wrap_content"/> -
标签内通过属性配置控件样式(无需刻意记忆,多用即熟)。
-
四、布局与 Java 代码的关联
1. 核心方法:setContentView
-
在
Activity的onCreate方法中调用(页面创建时自动执行)。 -
作用:将 XML 布局文件与 Java 代码(Activity)绑定,示例:
javasetContentView(R.layout.activity_main);
2. 资源引用规则
- 资源 ID 格式:
R.资源类型.资源名称,对应res目录下的资源文件夹。 - 常见资源类型:
- 布局资源:
R.layout.布局文件名(对应res/layout)。 - 图片资源:
R.mipmap.图片名称(近年开发常用,图片存于res/mipmap)。 - 其他资源:如 raw(原始文件)、values(配置文件)等,按同样规则引用。
- 布局资源:
五、ViewGroup 的作用
- ViewGroup 是 "不可见的布局容器",继承自 View,用于控制子控件的布局结构和分布方式。
- 开发中不直接使用 ViewGroup,而是使用其子类布局,如
ConstraintLayout(约束布局)等。 - 不同 ViewGroup 子类对应不同布局效果,通过配置布局属性,可灵活控制控件的排列、位置和大小。