入门文档推荐css
http://hukai.me/android-training-course-in-chinese/basics/firstapp/starting-activity.htmlhtml
刚刚开始不太清除项目对应关系,和文件关系,请必定用android studio来开发/学习前端
android 文件大类(入门理解看看就好)java
三大类 布局文件 资源文件 逻辑文件 android
这个文件位于layout文件夹下,这个文件下都是都是布局文件(android studio 自动生成)web
关于xml文件里的内容,其实和html数据十分类似的概念,只是名字不一样和一些android的一些不一样的概念(大致上仍是十分类似的)typescript
正常的web开发中,咱们的html 元素有<div> <span> ....等等一些标签,和一些自定义标签 和 标签中的属性 id class style 样式之类的属性。数据库
android它也有一套本身的标签类 像是这些 <EditText/> <Button/>.. 等等数组
举例,咱们定义一个android 的button 按钮app
<Button android:id="@+id/ebutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="sendMessage" android:text="@string/a_button" />
上面是一个简单的按钮组件,首先看到的是他的定义Button 大写开头,明确的声明了一个button按钮
而后第一个属性android:id = "@+id/ebutton",这里实际上是给这个button按钮声明了一个id 相似于 html 中的 <div id = xxx>
视图的惟一标识符(android:id)
它们的区别?为何android声明id时上面会有@+id/这个奇怪的东西?
文档中声明@+id/
@表示这个属性是一个会被其余地方引用到的类型 。+号表示这个资源第一次使用须要被建立 .id这是资源类型/ 以后就是它的名称
我须要引用一个资源@+它的类型是id 写成 @+id/name (这里的引用其实就是在逻辑文件中使用)
接下来的android:layout_width 和 android:layout_height 很明显的意思 设置按钮组件的布局高宽,
这里其实高宽能够本身定义数组 100 10之类的 可是android 的高宽布局有咱们上面写的 warp_content 意思就是按照内容来占用空间
还有其余按照权重比来分配空间相似于css中的flex:1 这样的属性 在android中它的名字叫 android:layout_weight="1"
这里有一个要十分注意的重点,当你设置权重比例时,那么你就不能在使用 android:layout_width=warp_content 之类的。
咱们能够的把android:layout_width显示的设置成 android:layout_width="0dp"
android:onClick="sendMessage" 这个也很好理解他声明了,这个按钮组件他有一个onclick事件,事件名称是sendMessage,
这个名字很重要,由于你的android的逻辑触发事件方法也必须是这个名字 相似html 中我给一个div声明了一个点击事件
<div onclick = onc >
<script>function onc() {console.log(这是一个事件函数)}</script>
android:text="@string/a_button" 前面说过,若是咱们要引用资源时须要使用@这个就是引用了一个文本资源,这个资源就是android的资源类型(稍后再说)
简单的说,android的xml 布局文件,它提供了相似于html的功能 展现组件,组件布局 事件的声明。
前面说到过,咱们须要引用一个资源的时候,须要使用@来表示应用,若是第一次建立还须要+类型的名称。
<Button android:id="@+id/ebutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="sendMessage" android:text="@string/a_button" />
仍是这个按钮组件,继续上面说的android:text="@string/a_button" 这里能够理解成,引用一个string 类型 他的名称叫作a_button
那么这个a_button存在哪里呢,其实这就是存储在资源文件中,已经声明的资源数值。
进入项目目录,打开res目录,values下,会有多个xml这里存放的一些资源文件,也是xml。
打开一个叫作strings.xml的文件,咱们能够在这里定义 字符串资源
// 定义一个资源 // resources 资源 <resources> <string name="a_button">It is Button</string> </resources>
这里咱们上面的button组件,引用的字符串类型就有了
资源类型有许多,其实一些图标文件也是使用xml储存起来的。能够用@来引用他们
例如colors.xml这里可能存着多是颜色样式的值。和drawable文件夹下的一些xml文件这里可能存放这图标文件
其实资源文件有点像css文件在web前端中起到的做用,定义了一些经常使用的显示数据库,经过设置在组件中展现出来。
好比css中的content:'string'
这些java文件控制组件的交互,转跳,信息传递,相似于web中的Javascript起到的做用,可是语法很是不一样,若是理解typescript
对java仍是能够很快的简单上手使用一些简单的逻辑