入門文檔推薦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仍是能夠很快的簡單上手使用一些簡單的邏輯