文章目录

  • 零、学习目标
  • 一、安卓应用视图
    • 1、Project视图
    • 2、Package视图
    • 3、Android视图
  • 二、安卓应用目录结构
    • (一)项目清单目录 - manifests
    • (二)Java源程序目录 - java
    • (三)资源目录 - res
      • 1、图形图像资源
        • (1)drawable
        • (2)mipmap
      • 2、布局资源
      • 3、值资源
        • (1)颜色资源
        • (2)字符串资源
        • (3)样式资源
    • (四)资源标识文件R.java
    • (五)Gradle构建脚本
      • 1、项目(Project)的Gradle构建脚本
      • 2、模块(Module)的Gradle构建脚本
  • 三、案例演示——显示学生信息
    • 1、创建安卓应用【StudentInfo】
    • 2、存放背景图片
    • 3、设计用户界面
    • 5、启动应用,查看效果
    • 5、在主界面通过Java代码操控标签
    • 6、在活动栏上显示图标

零、学习目标

  1. 能说出安卓应用的几种常用视图
  2. 能说出安卓应用里几种常用目录及其作用
  3. 知道资源标识文件R.java在什么位置
  4. 能说出Gradle构建文件的位置及其作用

一、安卓应用视图

在Android Studio里有三种不同视图:Project视图、Package视图和Android视图

1、Project视图

  • 在Project视图下可以查看真实的目录与文件结构

2、Package视图

3、Android视图

  • 一般开发安卓应用,采用Android视图,结构比较简洁。其中,manifestsjavares三个目录里的内容都是在安卓应用开发中经常要访问的。
  • 安卓应用结构天生就符合MVC模式

二、安卓应用目录结构

  • 在Android视图查看安卓应用目录结构,有manifestsjavares三个重要目录

(一)项目清单目录 - manifests

  • 项目清单文件AndroidManifests.xml
  1. 设置安卓应用属性:icon、label、roundIcon……
  2. 注册安卓组件:Activity、ContentProvider、Service、BroadcastReceiver

(二)Java源程序目录 - java

(三)资源目录 - res

1、图形图像资源

(1)drawable

  • 存放不区分分辨率的图片、图形配置文件、动画配置文件

(2)mipmap

  • 存放要区分分辨率的图片,一般是图标文件

2、布局资源

  • 布局资源文件,用于设置安卓应用的用户界面。

3、值资源

(1)颜色资源

  • 查看颜色资源文件
  • 在布局文件里使用颜色资源
  • 在Java源程序里使用颜色资源
  • 为了在Java源程序访问到标签控件,需要给标签设置id属性
  • 在主界面窗口MainActivity获取标签对象,设置文本颜色
  • 说明:getResources()方法获取资源对象,然后通过getColor()方法获取颜色资源,参数是颜色资源的标识符(R.color.colorAccent)。
  • 启动应用,查看效果

(2)字符串资源

  • 查看字符串资源文件
  • 定义一个字符串变量major
  • 在主布局文件里再添加一个标签,设置相关属性
  • 启动应用,查看效果
  • 修改主布局,将专业标签的文本属性清空
  • 修改主界面MainActivity,获取专业标签实例,设置其文本属性
  • 说明:getResources()方法获取资源对象,然后通过getString()方法获取字符串资源,参数是字符串资源的标识符(R.string.major)。
  • 启动应用,查看效果

(3)样式资源

  • 查看样式资源文件styles.xml
  • 定义了一个样式AppTheme,继承了Theme.AppCompat.Light.DarkActionBar主题
  • 查看清单文件,应用引用了样式AppTheme
  • 修改样式AppTheme,继承Theme.AppCompat.Light.NoActionBar,没有活动栏
  • 启动应用,查看效果

(四)资源标识文件R.java

  • Android Studio 3.0里可以查看R.java

  • Android Studio 4.0里相应位置没有R.java
  • 在搜索对话框里也找不到R.java

(五)Gradle构建脚本

1、项目(Project)的Gradle构建脚本

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {repositories {google()jcenter()}dependencies {classpath "com.android.tools.build:gradle:4.0.1"// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}allprojects {repositories {google()jcenter()}
}task clean(type: Delete) {delete rootProject.buildDir
}

2、模块(Module)的Gradle构建脚本

apply plugin: 'com.android.application'android {compileSdkVersion 30buildToolsVersion "30.0.2"defaultConfig {applicationId "net.hw.helloworld"minSdkVersion 16targetSdkVersion 30versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}
}dependencies {implementation fileTree(dir: "libs", include: ["*.jar"])implementation 'androidx.appcompat:appcompat:1.2.0'implementation 'androidx.constraintlayout:constraintlayout:2.0.1'testImplementation 'junit:junit:4.12'androidTestImplementation 'androidx.test.ext:junit:1.1.2'androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'}

三、案例演示——显示学生信息

1、创建安卓应用【StudentInfo】

  • 选择项目模板 - Empty Activity
  • 配置项目信息
  • 单击【Finish】按钮,完成项目初始化

2、存放背景图片

  • 将背景图片background.jpg存放到res/drawable目录

3、设计用户界面

  • 打开主布局资源文件activity_main.xml,切换到Code视图
  • 将约束布局改成线性布局,删除标签元素
  • 设置线性布局的相关属性
  • 添加八个标签,设置相关属性
  • 代码说明
    1. 设置文本属性,采用的是字符串资源,格式@string/XXX,不建议使用硬编码字符串。
    2. 设置颜色属性,两种方式都可以使用,一种是直接定义颜色,格式#ffaabb,一种是使用颜色资源,格式@color/XXX
    3. 设置文本字号,单位一般使用dp,不建议使用ptpxsp(控件宽度高度属性一般使用sp作单位)
  • 在字符串资源文件strings.xml里定义布局文件里所使用的字符串变量

5、启动应用,查看效果

5、在主界面通过Java代码操控标签

  • 声明标签变量
  • 通过资源标识符获取控件实例
  • 设置标签内边距属性
  • 启动应用,查看效果
  • 任务:单击每个标签之后,标签颜色都变成某一种颜色 - 蓝色
  • 在颜色资源文件里定义颜色变量blue
  • 给学号标签和姓名标签注册单击监听器
  • 启动应用,查看效果
  • 课堂练习:对其余六个标签进行单击事件处理,单击之后都变色 - 你喜欢的颜色。单击【爱好】标签,不仅改颜色,还要改内容 - “爱好:音乐、美食、旅游”

6、在活动栏上显示图标

  • 在项目清单文件里对activity组件设置android:icon属性,活动栏依然不显示图标
  • 在主界面MainActivity的onCreate()方法里添加代码
  • 启动应用,查看效果

安卓学习笔记03:安卓应用目录结构相关推荐

  1. 【skynet学习笔记】skynet的目录结构

    [skynet学习笔记]skynet的目录结构 skynet目录结构 学习skynet必须先了解一下skynet的目录结构. skynet的目录结构十分清晰,一目了然. 下面来具体看看各个目录. [r ...

  2. Linux学习笔记(一)|目录结构

    Linux学习笔记(一) #一.Linux的目录结构 Linux采用层级式的树状目录结构,根目录为"/",在此目录下创建其他目录. /lib 系统开机所需要最基本的动态链接共享库 ...

  3. Linux学习笔记 第三课 目录结构及简单命令

    一.目录结构 二.简单命令(ls,cd,pwd,which,alias,pstree,tree) 三.环境变量PATH应用 四.快捷键 五.扩展知识   (stty  ,ping 及 /var/log ...

  4. 【DM8168学习笔记5】EZSDK目录结构

    EZSDK5.02的目录结构与之前的版本不同,之前的版本各个组件都放在/ezsdk目录下,5.02做了整合. 之前版本:(图片摘自:3.DM816x_1-day_Workshop-Getting_St ...

  5. 安卓学习笔记:安卓11访问/读写 Android/data 目录

    省流提示:采用android studio工具开发,记录一次低级的开发,避免以后忘记或者踩坑. 最近有个业余项目开发到一小半,过程中需要读写 Android/data目录的文件,采用常规的文件操作总是 ...

  6. 【安卓学习笔记】安卓的事件处理

    安卓提供了两种方式的事件处理:基于回调的事件处理和基于监听的事件处理. 基于监听的事件处理 基于监听的事件处理一般包含三个要素,分别是: Event Source(事件源):事件发生的场所,通常是各个 ...

  7. JAVA学习笔记 03 - JAVA语言程序结构

    本文是Java基础课程的第三课.计算机语言的程序结构无外乎顺序结构.分支结构.循环结构,本文主要介绍Java语言中这些程序结构是如何实现的 文章目录 一.程序结构 二.分支结构 1.单分支if语句 2 ...

  8. 2020年安卓学习笔记目录

    文章目录 一.讲课笔记 二.安卓案例 三.安卓实训项目 四.学生安卓学习博客 五.安卓课后作业 (一)界面设计练习 1.制作登录界面 2.制作部队管理界面 3.制作灭火救援界面 4.制作交付界面 5. ...

  9. 安卓学习笔记07:事件处理、窗口跳转与传递数据

    文章目录 零.学习目标 一.三个基本控件 1.标签控件(TextView) 2.编辑框控件(EditText) 3.按钮控件(Button) 二.安卓事件处理机制 (一)安卓事件处理概述 (二)安卓事 ...

最新文章

  1. anaconda3配置环境变量_Python:Anaconda安装及LabelMe配置(1)
  2. 企业信息化投入中咨询服务_企业信息化咨询中的问题与对策研究
  3. 关于SharePoint中管理列表项权限
  4. 初学java之常用组件
  5. 全国计算机技术与软件专业技术资格(水平)考试基础知识
  6. Linux操作命令(一)
  7. 网络协议栈深入分析(一)--与sk_buff有关的几个重要的数据结构
  8. ctfshow-网络迷踪-新手上路 ( 使用百度搜图收集景点信息)
  9. 模式识别之线性回归---最小二乘和线性回归
  10. Eclipse 插件之间互相依赖, 导出Jar包安装, 报错“java.lang.NoClassDefFoundError”
  11. C# windows身份验证的连接字符串!
  12. Delphi多媒体设计之TMediaPlayer组件(三)
  13. python定时任务_Python定时任务工具--APScheduler
  14. Photoshop CS6 软件安装教程
  15. 二叉平衡树平衡方法(RR、LL、RL、LR)
  16. 分享一些Photoshop的教程电子档(pdf格式),初学者与设计师适用
  17. 阿里巴巴离职DBA职业生涯总结--吕海波
  18. 计算机设计教育,计算机设计艺术教育教学论文
  19. Java开发者跳槽必备,面试:Redis为什么这么快呢
  20. 转:最好的300款免费软件

热门文章

  1. 趣味科普丨一文读懂云服务器的那些事儿
  2. 3种双集群系统方案设计模式详解
  3. 5G边缘计算:开源架起5G MEC生态发展新通路
  4. 【nodejs原理源码赏析(1)】Express中间件系统的基本实现
  5. 云端远程Ubuntu系统进行无桌面Web浏览器自动化测试
  6. Python Selenium 基本配置
  7. 80万辆车“云上飞驰”的背后
  8. python scrapy框架爬虫_Python Scrapy爬虫框架
  9. MATLAB_排列组合_摸球组合生成
  10. python绘图数字_绘制一个绘图,其中Yaxis文本数据(非数字)和Xaxis数字d