news 2026/5/2 2:56:57

Sability安卓(三)_基础开发知识扫盲,开学XML......

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Sability安卓(三)_基础开发知识扫盲,开学XML......

一、页面和布局

页面:一个APP通常由多个页面组成,如:登录页面、注册页面、首页、个人中心、商品详情页、购物车等等

在传统Android开发中,一个页面通常由两部分组成:

  • 逻辑代码,即页面的逻辑功能,数据,交互等,一般使用Java代码或者kotlin代码

  • 布局代码,通常使用xml布局

逻辑代码:

class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContentView(R.layout.activity_main) ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets } } }

布局代码:

<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout 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:id="@+id/main" 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!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>

页面Activity

代码解读:

class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } }

基类:AppCompatActivity

我们编写的页面需要继承AppCompatActivityAppCompatActivity是Google提供的一个父类

  • 对 Material Design 设计规范的支持

  • 向后兼容旧版 Android 系统

  • 集成 ActionBar(应用栏)

生命周期方法onCreate()

  • onCreate()是 Activity 生命周期的第一个生命周期回调方法

  • 当 Activity 第一次被创建时调用

  • 必须调用super.onCreate(savedInstanceState)来执行父类初始化

加载布局:setContentView()

  • 设置当前 Activity 的可视化布局

  • R.layout.activity_main表示

    • R是自动生成的资源类

    • layout表示布局资源目录

    • activity_main是具体的布局文件名(位于 res/layout 目录)

文件对应关系:

自学探索:

  1. activity_main.xml中添加基本 UI 组件

  2. 学习如何在 Activity 中通过findViewById()获取视图控件

  3. 了解页面(Activity)的其他生命周期方法,尝试重写其他生命周期方法(如onResume()

  4. 创建第二个 Activity 并学习跳转方法

二、XML布局

2.1.基本概念

  • 文件类型.xml文件(用 XML 语言描述界面)

  • 存放位置项目根目录 → res/layout/文件夹

2.2.三种预览模式

  1. Design模式:可视化界面设计,适合快速查看布局效果,支持拖放控件和实时预览。但可能不适合复杂布局或需要精确调整的情况。

  2. Split模式:左右分屏,左边是代码,右边是设计视图。适合同时查看设计和代码,方便学习和调试。

  3. Code模式:直接编辑XML代码,适合有经验开发者需要精确控制布局或处理复杂结构的情况。

2.3.标签

标签分类:

  • 单标签(自闭合标签)

  • 双标签

2.3.1.单标签(自闭合标签)

<标签名 />格式表示,没有子节点且自动闭合,常见于简单控件或声明性元素。

适用于纯展示型控件(如TextViewButton

<!-- 自闭合标签 --> <TextView android:id="@+id/textView" android:text="Hello World!" /> <!-- 另一种写法(等价) --> <TextView android:id="@+id/textView" android:text="Hello World!"/>
2.3.2.双标签

<标签名> ... </标签名>格式表示,有子节点或复杂结构,常见于容器布局(如LinearLayoutRelativeLayout

特点

  • 必须成对出现(开始标签和结束标签)

  • 可以嵌套子标签

  • 适用于需要组合多个控件的布局

<!-- 双标签(容器布局) --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- 子标签:TextView 和 Button --> <TextView android:text="第一行" /> <Button android:text="点击我" /> </LinearLayout>

实战小技巧:

  • 代码格式化,按Ctrl + Alt + L(Windows/Linux)或Cmd + Option + L(Mac)自动格式化 XML

  • > 和 / 分别可以快速设置单标签和双标签,详情见视频演示

  • 书写标签的时候一定要先写<,才会出现代码提示

三、AndroidManifest.xml

3.1.什么是AndroidManifest.xml

  • 作用:清单文件,向 Android 系统声明应用的「身份信息」和「组件清单」

  • 关键功能

    • 声明应用包含哪些组件(Activity/Service/Receiver/Provider)

    • 申请运行所需权限(如网络访问、相机使用)

    • 指定应用的图标、名称、版本号

3.2.核心配置

3.2.1.<application>标签
  • android:icon:应用图标(放在res/mipmap目录)

  • android:label:应用名称(需在strings.xml中定义)

  • android:theme:主题样式(如@style/AppTheme

3.2.2.<activity>标签
  • android:name:指定 Activity 类名(需包含包名,如.MainActivity
  • android:screenOrientation:屏幕方向(portrait/landscape
  • android:launchMode:启动模式(singleTop/standard
3.2.3.Intent Filter(意图过滤器)
  • 作用:告诉系统哪些 Intent 可以触发当前 Activity

  • 常见配置:

    • <action>:指定 Intent 的动作(如MAIN表示主入口)

    • <category>:指定 Intent 的类别(如LAUNCHER表示启动器)

3.2.4.权限申明

<uses-permission android:name="android.permission.INTERNET" /> <!-- 网络权限 --> <uses-permission android:name="android.permission.CAMERA" /> <!-- 相机权限 -->

注意事项:

  • 危险权限(如位置、通讯录)需在AndroidManifest中声明,并在运行时动态申请(Android 6.0+)

  • 使用 PermissionX 等第三方库简化权限处理

四、实战:修改应用图标和名称

修改名称

  1. 打开项目:启动Android Studio,打开你正在开发的项目。

  2. 找到strings.xml文件:在项目的res/values目录下,你会看到一个名为strings.xml的文件。这个文件中存储了应用中使用的各种字符串资源,包括应用名称。

  3. 修改应用名称:打开strings.xml文件,在其中找到<string name="app_name">你的应用名称</string>这一行代码。将 “你的应用名称” 替换为你想要的新名称,比如<string name="app_name">我的新应用</string>

  4. 保存修改:保存strings.xml文件后,你会发现应用名称在模拟器或者真机上的显示已经更新啦。

android:label="@string/app_name" <resources> <string name="app_name">待办助手</string> </resources>

修改应用图标

使用Image Asset工具,设计应用图标

设计图标

五、R类

5.1.R类是什么?

R是 Android 自动生成的静态资源类,相当于一个「资源字典」,用来快速查找应用中的各种资源(布局、图片、字符串等)

5.2.生成规则

  • 每当你添加/修改资源文件(如activity_main.xmlstrings.xmldrawable/ic_launcher.png)时,Android Studio 会自动扫描并更新R类。

  • 如果资源文件命名不规范或路径错误,R类可能无法生成,导致编译失败。

5.3.常见R类资源

资源类型​​对应 R 类成员​​示例代码​
布局文件R.layoutsetContentView(R.layout.activity_main)
字符串R.stringtextView.setText(R.string.app_name)
图片/图标R.drawableimageView.setImageResource(R.drawable.ic_launcher)
颜色值R.colortextView.setTextColor(R.color.red)

5.4.总结:

  • R 类是 Android 开发的「资源管家」,使用它能大大提高开发效率。

  • 牢记两点

    • 资源文件命名和路径必须严格遵循规范。

    • 修改资源后一定要清理项目重新编译。


六、创建新的Activity

选中项目包名下的文件夹,右键,新建activity,模板可以选择Empty Views Activity,输入Activity的名称

如何指定App启动的第一个activity?两种方式

  • 方式一:通过配置intent-filter指定(常规方式)

  • 方式二:通过配置launch options + exported=true (零时指定某个页面作为启动页),方式二这种方式只能通过编译运行启动指定页面,在模拟器或者真机的桌面,点击应用图标,仍然还是用的方式一

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 2:55:30

odoo 19会计模块功能详解:会计模块中默认科目的设置与使用方法

Odoo 19会计模块中默认科目的设置与使用方法 任何企业的高效财务管理&#xff0c;都依赖于一套组织完善的体系&#xff0c;来记录和监控收入、费用、资产、负债等各类财务活动。而实现这一目标的核心&#xff0c;就是通过会计科目对企业发生的每一笔交易进行分类核算。为了对这…

作者头像 李华
网站建设 2026/5/2 2:56:10

将联想手机备份到电脑的 4 种方法(简单快捷)

联想是一家著名的个人电脑制造商&#xff0c;收购摩托罗拉移动后&#xff0c;现已跻身Android智能手机主要供应商之列&#xff0c;仅次于三星、HTC、华为等知名手机厂商。联想手机凭借出色的摄像头、流畅的操作系统、完善的内置通讯信号以及精心设计的外观&#xff0c;俘获了全…

作者头像 李华
网站建设 2026/4/10 21:43:11

如何快速优化Windows系统:Win11Debloat终极清理工具完全指南

如何快速优化Windows系统&#xff1a;Win11Debloat终极清理工具完全指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter …

作者头像 李华
网站建设 2026/4/10 21:42:39

3步掌握艾尔登法环调试工具:从新手到模组开发者的实战指南

3步掌握艾尔登法环调试工具&#xff1a;从新手到模组开发者的实战指南 【免费下载链接】Elden-Ring-Debug-Tool Debug tool for Elden Ring modding 项目地址: https://gitcode.com/gh_mirrors/el/Elden-Ring-Debug-Tool 你是否曾想过在《艾尔登法环》中自由获取任何装备…

作者头像 李华
网站建设 2026/4/10 21:37:04

Verilog 进阶书单:从入门到精通(附资源下载)

1. Verilog学习路径规划&#xff1a;从菜鸟到专家的书单指南 第一次接触Verilog的时候&#xff0c;我也被那些奇怪的语法和硬件描述方式搞得一头雾水。记得当时用always块写了个简单的计数器&#xff0c;仿真结果却完全不对&#xff0c;调试了整整两天才发现是敏感列表没写全。…

作者头像 李华