標籤:android style blog http color io ar 使用 java
一,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學習之路上帶來協助。
前端之Android入門(2) – 程式目錄及UI簡介