零基础 Android 开发

写在前面:Android最开始使用XML和java语言开发,XML用来绘制app页面元素,java用来添加时间和动作,这点很像HTML和Javasrcipt

安装环境遇到的问题

gradle同步失败

Gradle 是一个开源的自动化构建工具,它能够支持多种编程语言和平台。Gradle 使用一种基于 Groovy 或 Kotlin 的领域特定语言(DSL)来声明项目设置,从而使构建过程更加灵活和可配置。它被广泛用于 Java、Kotlin 和 Android 等项目的构建管理。Gradle 能够管理项目的依赖、编译过程、打包和发布等多个阶段,提供了高效和灵活的构建机制。此外,Gradle 通过其强大的插件系统支持各种外部工具和框架的集成,使得开发者可以根据需要扩展构建过程

当配置文档时出现 【Android Studio】Gradle sync failed in xx s xxx ms;Connect timed out;Could not install Gradle dis 时,大概率是下载相应文件失败,需要改变 settings.gradle.kts 中的下载源
解决参考

Android Studio打开项目无法运行(run/Add Configuration)

大概率是配置文件没写好
解决参考

Andriod api和安卓版本对应关系

在这里插入图片描述

Android Studio 和文件作用

目录结构如下
在这里插入图片描述

该项目下面有两个分类:一个是app(代表app模块);另一个是Gradle Scripts。
其中,app下面又有3个子目录,其功能说明如下:
(1)manifests子日录,下面只有一个XML文件,即AndroidManifest.xml,它是App的运行配置文件,在里面可以更改软件图标和名字。
(2)java子日录,下面有3个com.example.myapp包,其中第一个包存放当前模块的java源代码,后面两个包存放测试用的java代码
(3)res子目录,存放当前模块的资源文件。res下面又有4个子目录:

  • drawable目录存放图形描述文件与图片文件。
  • layout目录存放App页面的布局文件。
  • mipmap目录存放App的启动图标。
  • values日录存放一些常量定义文件,例如字符串常量strings.xml、像素常量dimens.xml、颜色常量colors.xm)、样式风格定义
    styles.xml等。

Gradle Scripts下面主要是工程的编译配置文件,主要有:
(1)build.gradle,该文件分为项目级与模块级两种,用于描述App工程的编译规则。
(2)proguard-rules.pro,该文件用于描述java代码的混淆规则。
(3)gradle.properties,该文件用于配置编译工程的命令行参数,一般无须改动。
(4)settings.gradle,该文件配置了需要编译哪些模块。初始内容为include’:app’,表示只编译app模块。
(5)local.properties,项目的本地配置文件,它在工程编译时自动生成,用于描述开发者电脑的环境配置,包括SDK的本地路径、NDK的本地路径等。

MainActivity

MainActivity 在 Android 开发中通常作为应用程序的入口点。它是一个 Activity 类的扩展,负责创建和显示应用程序的用户界面。在 Android 应用中,Activity 代表了一个单独的屏幕,包含用户可以与之交互的元素。MainActivity 通常是用户启动应用时看到的第一个屏幕,因此它承担了初始化视图、数据绑定、处理用户输入等任务。具体到 MainActivity 的角色和功能,可以总结如下:

  • 初始化界面:通过 setContentView 方法加载布局文件,建立用户界面。

  • 处理用户交互:监听用户的动作(如点击、滑动等),并对这些动作做出响应。

  • 生命周期管理:管理应用的生命周期事件(如创建、暂停、恢复、销毁等),确保应用在不同状态下正确运行。

  • 资源管理:加载和使用资源(如字符串、图片等),并根据需要调整资源(如切换主题),初始化一个类R(res),R 是一个自动生成的类,用于提供对资源的引用,如布局(layout)、字符串(strings)、颜色(colors)和其他静态资源。这个类使得开发者可以在代码中通过ID访问这些资源,而不是通过硬编码的字符串或其他字面量。R 类位于你的应用包名下,例如 com.example.app.res,并且会随着项目中资源的增加自动更新,可以通过R调用res中的变量来改变内容,如下所示

    setContentView(R.layout.activity_main);
    // modify show content in the screen
    TextView tv = findViewById(R.id.text_content);
    tv.setText("这是一个智能记账本");
    

    其中activity_main中的内容如下

    <TextView
            android:id="@+id/text_content"
            android:text="Hello World!"
    
  • 导航和布局:作为导航的起点,管理应用中的其他 Activity 或碎片(Fragment),以及实现复杂的用户界面布局。

  • 适配不同设备:处理不同设备和屏幕尺寸的适配问题,确保用户界面在各种设备上都能正确显示,具体做法是继承官方提供的类

    public class MainActivity extends AppCompatActivity
    

创建一个页面

逐步创建

步骤如下:

(1)在 layout 目录下创建 XML 文件,即新activity的布局文件
(2)创建与 XML 文件对应的 Java 代码,在java包下新建一个java文件对应新的Activity
在这里插入图片描述
(3)在 AndroidManifest.xml 中注册页面配置,填写这样的代码

<activity
         android:name=".click_example"
         android:exported="false" />

用Android Studio快捷创建

java下的软件包里新建Activity,可以自动生成面三个步骤

页面布局

前提知识

生活中常说的手机或者显示屏有多少尺寸,单位为英尺,1英尺=2.54厘米,如果说一块显示屏的尺寸为28寸,其实是屏幕对角尺寸为28寸,即28×2.54=71.12厘米
在这里插入图片描述

在这里插入图片描述

关于像素密度dpi(Dots Per Inch),可以理解为:在一英寸的屏幕上,有多少像素。鼠标dpi400,就是指我在桌上挪动一英寸,鼠标要在屏幕上走400个像素

重点在于dp(dip,Device Independent Pixle),dp有时也写作dip,指的是与设备无关的显示单位,它只与屏幕的尺寸有关,所有显示到屏幕上的图像都是以 px 为单位,Dp 是我们开发中使用的长度单位,最后他也需要转换成 px,计算这个设备上 1dp 等于多少 px:px = dp x dpi /160,例如320 x 480分辨率,3.6寸的手机:dpi为160,1dp=1px,有如下关系
在这里插入图片描述
在这里插入图片描述

关于sp,sp的原理跟dp差不多,但它专门用来设置字体大小。手机在系统设置里可以调整字体的大小(小、标准、大、超大)。设置普通字体时,同数值dp和sp的文字看起来一样大;如果设置为大字体,用dp设置的文字没有变化,用sp设置的文字就跟随系统字体字号变大了。一般而言,文本字体用sp,元素之间的布局用dp,因为sp会随系统字号的改变而改变,而dp不会。

为文本上色

  • 在XML文件中则通过属性android:textColor指定文本颜色,色值由透明度alpha和RGB三原色联合定义。
  • 色值有八位十六进制数与六位十六进制数两种表达方式,例如八位编码FFEEDDCC中,FF表示透明度,EE表示红色的浓度,DD表示绿色的浓度,CC表示蓝色的浓度。
  • 透明度为FF表示完全不透明,为00表示完全透明。RGB三色的数值越大,表示颜色越浓,也就越亮;数值越小,表示颜色越淡,也就越暗

可以在XML文件中设置这些颜色,也可以在Java文件中用set方法设置

android:text="Hello World!"
android:textSize="30sp"
android:textColor="@color/magenta"
android:background="@color/black"

设置文本宽度和高度

视图宽度通过属性android:layout_width表达,视图高度通过属性android:layout_heig
ht表达,宽高的取值主要有下列三种:

  • match_parent:表示与上级视图保持一致。如果内容不够上级宽度,则填补空白,如果超出,则省略超出的部分或换到下一行
  • wrap_content:表示与内容自适应。
  • 以dp为单位的具体尺寸。
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_width="300dp"

设置视图的间距

设置视图的间距有两种方式:

  • 采用layout_margin属性,它指定了当前视图与周围平级视图之间的距离。包括layout_margin、layout_marginLeft、layout_marginTop、layout_marginRight、layout_marginBottom
  • 采用padding属性,它指定了当前视图与内部下级视图之间的距离。包括padding、paddingLeft、paddingTop、paddingRight、paddingBottom

下面是一个示例,最外的线性布局为背景为蓝色,当只指定了layout_margin或者padding时,默认四周都是该值。线性布局可以内置线性布局,要指定线性布局的方向(orientation)是垂直(vertical)还是水平(horizental)的,View内不可嵌套别的布局。
在这里插入图片描述

设置视图对齐

设置视图的对齐方式有两种途径:

  • 采用layout_gravity属性,它指定了当前视图相对于上级视图的对齐方式。
  • 采用gravity属性,它指定了下级视图相对于当前视图的对齐方式。

layout_gravity与gravity的取值包括:left、top、right、bottom,还可以用竖线连接各
取值,例如“left|top”表示即靠左又靠上,也就是朝左上角对齐。
在这里插入图片描述

总结 : 当需要统一对子元素进行设置(如都在中央或都与父元素有间距)时,可以用padding 和 gravity,其余情况一般都是设置子元素对于父元素的相对位置,用layout_margin 和 layout_gravity

线性布局的权重

线性布局的权重概念,指的是线性布局的下级视图各自拥有多大比例的宽高。
权重属性名叫layout_weight,但该属性不在LinearLayout节点设置,而在线性布局的直接下级视图设置,表示该下级视图占据的宽高比例

  • layout_width填0dp时,layout_weight表示水平方向的宽度比例。
  • layout_height填0dp时,layout_weight表示垂直方向的高度比例。
    在这里插入图片描述

网格布局GridLayout

网格布局支持多行多列的表格排列,与LinearLayout同级。
网格布局默认从左往右、从上到下排列,它新增了两个属性:

  • columnCount属性,它指定了网格的列数,即每行能放多少个视图;
  • rowCount属性,它指定了网格的行数,即每列能放多少个视图
    在这里插入图片描述

滚动视图ScrollView

滚动视图有两种:

  • ScrollView,它是垂直方向的滚动视图;垂直方向滚动时,layout_width属性值设置为match_parent,layout_height属性值设置为wrap_content
  • HorizontalScrollView,它是水平方向的滚动视图;水平方向滚动时,layout_width属性值设置为wrap_content,layout_height属性值设置为match_parent

ScrollView 内置 多个LinearLayout的滚动

作 者: 李文琴,李翠霞 编 出版时间: 2014 丛编项: 普通高等学校计算机教育“十二五”规划教材 内容简介   本书作为Android课程的教材,系统全面地介绍了Android应用开发所涉及的各类知识。全书共分为21章,内容包括搭建Android开发环境,Android模拟器与工具,用户界面设计,Android常用组件,深入理解Activity,Intent和BroadcastReceiver广播,用户资源的使用,Android事件处理,通知、对话框与警告,Android程序调试,图像与动画处理技术,利用OpenGL实现3D图形,多媒体应用开发Android数据存储技术,Content Provider实现数据共享,线程与消息处理,Service应用,网络通信技术,综合案例—家庭理财通,课程设计—猜猜鸡蛋放在哪只鞋子里,课程设计—简易涂鸦板。全书每章内容都与实例紧密结合,有助于学生理解知识,应用知识,达到学以致用的目的。本书附有配套DVD光盘,光盘中提供了本书所有实例、综合实例、实验、综合案例和课程设计的源代码,制作精良的电子课件PPT及教学录像,其中,源代码全部经过了精心测试,能够在Windows XP、Windows 2003、Windows 7、Windows 8系统下编译和运行。本书可作为应用型本科计算机专业、软件学院、高职软件专业及相关专业的教材,同时也可作为Android爱好者以及初、中级Android应用开发人员的参考工具书。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值