前端之Android入门(2) – 程序目录及UI简介

一,Android程序的目录结构

打开我们上次创建的HelloWorld项目,会看到一个目录结构,这就是Android的程序目录,这些目录的大致作用如下:

  • src:源码的组织管理目录。
  • gen:自动生成的目录,会生成一些重要的文件,如R.java,该目录一般不需要我们编写。
  • assets:该目录文件不会被编译成二进制编码,多用于放音视频,文本等原始格式文件。
  • bin:用于存放编译后的Java文件及apk文件。
  • libs:存放Android的源码包或需要引入的源码包。
  • res:程序资源的所在目录,包括图片,数值等各类资源。
  • AndroidManifest.xml:程序配置文件,它向系统描述了程序的信息。

这里先介绍我们常用到的目录:

1)src目录

打开项目的src目录,会立即明白,原来 com.tencent.helloworld 的”.”号相当于路径分隔符,Java就是通过此方式管理存放不同文件,也就是Java的包机制,现在只需知道此概念即可。

2)res目录

该目录用于存放Android程序的各类资源,非常重要,用于管理资源和Android UI的适配,在后面的例子中将会逐步使用到。其中主要包含下列目录:

drawable-xxx

用于存放位图(Bitmap files)(.png,.9.png,.jpg,.gif)或者状态列表(State lists),动画(Animation drawables),图形(Shapes)等绘制性资源的xml文件。相当于网页中的图片资源。其中-xxx用于适配不同像素密度的屏幕。这里先不作展开。

layout

该目录的xml文件用于描述一个Android UI界面(Activity)或一个系统桌面组件(AppWidget)的界面结构。相当于网页的Html结构。

menu

该目录下的main.xml文件用于定义Android底部的弹出菜单结构。

values-xxx

用于存放定义各种:字符值,颜色值,数值,样式等的xml文件,例如dimens.xml用于定义各尺寸值,strings.xml用于定义文字,colors.xml用于定义各颜色值,其中最为最重要的styles.xml用于定义View元素的视觉样式(相当与网页的Css)。-xxx作用也是用于Android的适配,这里也先不作展开。

AndroidManifest.xml文件

每个Android应用程序都有一个AndroidManifest.xml文件在根目录,该文件用于向系统提供一些程序运行前需要提供的信息。该文件主要包含以下信息:

  • 命名该应用的Java包名,包名将作为应用的唯一标识。
  • 描述应用的构成,包括Activity,Services等。
  • 声明应用所必须具备的权限,用以访问受保护部分的API。
  • 声明应用运行时需要的环境配置信息。
  • 声明应用所需的系统Android API的最低版本级别。
  • 列举应用所需要链接的库。

二,Android的UI简介

从Html角度出发,一个网页界面,通常由Div元素完成结构布局,Img,Input,Button等元素完成界面构建。Android的界面构建思想也如此,在Android的UI世界中,所有UI元素均由View类继承而来,然后衍生出用于布局的元素如:FrameLayout,LinearLayout,RelativeLayout,TableLayout等,用于界面呈现的组件元素如:TextView,EditText,ImageView,VideoView等。只是View元素及其子元素有严格的继承体系,这点和Html不同。下图展示了Android中的View元素体系:

和Css控制Html的视觉呈现一样,Android也是通过各属性控制View元素的视觉呈现,我们先来看看熟悉的Html和Css关系:

聪明的小伙伴一定会问,Css中的属性只有平级关系,为什么会区分开呢?没错,上图简单模拟了Android中“Css”的层级关系。在Android中,各属性是有严格区分和有其自身的继承体系。

所以这里有一个很重要的概念:在Android中,是由两类属性控制View类的视觉呈现。一类是Viwe类自身的属性,如背景、透明度、内空白等;一类是布局属性、如长度、宽度,边距、位置等。下图展示了它们之间的关系:

在这里我们需要明白3个概念:

1,View类的自身属性,是可以继承的,例如Android中,View类有id、alpha、padding等属性,而TextView继承自View,所以TextView除了可以设置自身的属性textColor外,还可以设置id,alpha等。所以我们可以这样设置一个TextView的呈现:

2,处在什么布局元素内,该布局元素内的视图就可以使用什么布局属性。例如TextView若处在LinearLayout内,则可以使用LinearLayout.LayoutParams定义的布局属性,如:

3,布局属性也是可以继承使用的,例如LinearLayout.LayoutParams继承自ViewGroup.MarginLayoutParams,ViewGroup.MarginLayoutParams则继承自ViewGroup.LayoutParams,最终可以像如下设置:

所以,通常在一个的界面中,布局属性的使用就像下图所示一样:

结束:在这次的文章中,简要介绍了一下程序目录。也对Android UI的概念作了总体介绍,理清UI属性的关系,对我们后面的编程,特别是用程序代码生成视图和设置属性都尤为重要。在下一篇文章中,我们将实际完成一个界面的制作,并借例子深入到Android UI的知识点中。希望这次的文章能给小伙伴们在Android学习之路上带来帮助。

时间: 2024-08-24 00:41:34

前端之Android入门(2) – 程序目录及UI简介的相关文章

前端之Android入门(1) – 环境配置

Step1:JDK的安装和Java环境变量的设置 JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.htmlJDK(Java Development Kit)是整个Java的核心,包括一系列Java开发的东西,安装完毕需要配置一下环境变量. 1)JAVA_HOMEJDK的安装路径,这个环境变量本身不存在,需要创建,创建完则可以利用%JAVA_HOME%作为统一引用路径,其值为:jdk在你电脑上的安装路径 2

小猪的Android入门之路——目录(持续更新)

小猪的Android入门之路专栏目录                     --转载请注明:coder-pig 欢迎转载,请乎用于商业用途! 写本专栏的一些感慨:      小猪的Android入门之路写了已经有一段时间了,记录的是小猪在Android学习路上的一些点点 滴滴,记得第一篇是2014.7.31号写的,当时正好是放暑假,脑子一热就决定写一个这样的系列了, 自学之路并不容易,你想想突然要你去接触一门你完全不会的东西,有多难,记得刚学Android就 加了几个Android开发群,在群

前端之Android入门(4) – MVC模式(中)

MVC 模式的最基本概念是分层设计,把我们的代码基于 View(视图).Model(模型).Controller(控制器)进行分类封装,这样做的目的是为了清晰结构,使代码更易维护和扩展. 在上一篇文章中,我们完成了计算器的界面还原,但严格来说并不是真正的 View 类,因为它还没反映视图的逻辑.在这次文章中,我们将编写计算器程序的 View 部分,Let’s Go!(注意:这次在代码的注释中写了较多的点,所以可以多看注释部分) 一,初识 Activity Activity(活动)作为 Andro

Android 程序目录及UI的简介

Android程序的目录结构 src:源码的组织管理目录. gen:自动生成的目录,会生成一些重要的文件,如R.java,该目录一般不需要我们编写. assets:该目录文件不会被编译成二进制编码,多用于放音视频,文本等原始格式文件. bin:用于存放编译后的Java文件及apk文件. libs:存放Android的源码包或需要引入的源码包. res:程序资源的所在目录,包括图片,数值等各类资源. AndroidManifest.xml:程序配置文件,它向系统描述了程序的信息. res目录 该目

前端之Android入门(5) – MVC模式(下)

我们将 View 类单独出来并完成了设计和编写.这次我们将完成 Model 类,并通过 Controller 将两者连接起来,完成这个计算器程序. 模型(Model)就是程序中封装了数据,并定义了操作和处理这些数据的逻辑的对象.在计算器的例子中,就是处理输入的操作数和运算符,并计算返回结果.Let’s Go(注意:示例中直接使用 double 类型来处理数据,但严格来说很多语言的浮点数计算都是不精确的) 一,设计模型的接口 在程序构建之初,我们首先考虑的应该是各模块间的封装和扩展,设计好模块的接

前端之Android入门(3) – MVC模式(上)

很多Android的入门书籍,在前面介绍完布局后就会逐个介绍组件,然后开始编写组件使用的例子.每每到此时小伙伴们都可能会有些疑问:是否应该先啃完一本<Java编程思想>学点 Java 知识呢?这些组件会使用了,但如何更好组织起来呢? 其实,Android 和 iOS已经把应用层级别的东西封装得比较简单易用,也配有丰富的文档与之对应,所以倒不必担心如何使用.而实际上,我想让大家通过这个系列的文章更关注和学习下面两点,我也会在例子的选取上多涉及这些方面的知识. 编程的思想.正如学会英语,并不一定就

【Android快速入门1】目录结构及adb命令(以API19为例)

目录结构 src: 存放java代码gen: 存放自动生成文件的. R.java 存放res文件夹下对应资源的idproject.properties: 指定当前工程采用的开发工具包的版本libs: 当前工程所依赖的jar包.assets: 放置一些程序所需要的媒体文件.bin: 工程的编译目录. 存放一些编译时产生的临时文件和当前工程的.apk文件. res(resources): 资源文件. drawable: 存放程序所用的图片. layout: 存放android的布局文件. fragm

android 系统构架和应用程序目录结构分析

一.Android系统构架 Android系统从底向上一共分了4层,每一层都把底层实现封装,并暴露调用接口给上一层. Linux内核(Linux Kernel) Android运行在linux kernel 2.6之上,但是把linux内受GNU协议约束的部分做了取代,这样在Android的程序可以用于商业目的. Linux 内核是硬件和软件层之间的抽象层. 中间件 中间件包括两部分:核心库和运行时(libraries & Android runtime) 核心库包括,SurfaceManage

ArcGIS for Android入门程序之DrawTool2.0

来自:http://blog.csdn.net/arcgis_mobile/article/details/8084763 GISpace博客<ArcGIS for Android入门程序之DrawTool>http://blog.csdn.net/gispace/article/details/6723459 在ArcGIS Android SDK 0.9版本实现绘制各种几个图形.ArcGIS Android SDK目前版本为2.0,较之前版本变化较大,故将之前版本移植到2.0版本下.源代码