Android 學習筆記雜記

Joerrot發表於2018-08-01
1.android:layout_width="fills_parent" //頁面元件的寬度,與父容器寬度相同,後來與match_parent等同
	android:layout_height="wrap_content" //頁面元件的高度,取決於它的內容
2.所有Activity都必須在AndroidManifest.xml檔案中進行註冊才能生效,這個清單檔案詳細地說明了該應用地名稱、所使用圖示以及包含元件、所在包等。是整個Androis應用地全域性描述檔案
在application標籤內通過activity標籤填入註冊資訊:
使用android:name來指定具體註冊哪一個活動如com.example.activitytest包下的FirstActivity活動,所以值為.FirstActivity
最外層的標籤manifest就已經指定了包名了;
android:label可以指定活動中的標題欄的內容,顯示在活動的最頂部,還會在執行的時候成為啟動器(Launcher)中應用程式顯示的名稱
之後的<intent-filter>標籤新增的
<intent-filter>
	<action android:name="android.intent.action.MAIN" />
	<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
表示如果想讓FirstActivity作為我們這個程式的主活動,即點選桌面應用程式圖示時首先開啟就是這個活動,那麼就一定要加入這兩句宣告
在<manifest.../>中新增<uses-permission.../>可以宣告該應用自身所擁有的許可權,所以所有的許可權都位於Manifest.permission類中
如<uses-permission android:name="android.uses-permission.CALL_PHONE"/>宣告該應用本身具有打電話的許可權
在在<activity.../>中新增<uses-permission.../>可以宣告該應用自身所需的許可權
如<uses-permission android:name="android.uses-permission.SEND_SMS"/>宣告該應用本身需要發資訊的許可權
3.Activity元件(子類)(需要繼承Activity基類)理解成一個使用者介面,裡面包含了很多的View物件,
可以通過setContentView(layoutResID)設定佈局,在setContentView的引數裡面,會獲取到一個View物件作為引數,如把layout檔案下的first_layout就是View物件,然後會把這個View物件新增到一個ViewGroop(mContentParent)中。ViewGroup是View的一個子類,可以作為View來使用,即ViewGroup可以包含ViewGroup元件,也可包含View元件,由於ViewGroup類是抽象類,所以一般使用它的子類來作為容器類,例如各種佈局管理器。ViewGroup有內部類LayoutParams提供了一些XML屬性,如android:layout_height,android:layout_width,有三個值:match_parent,fill_parent和wrap_content
Service元件(需要繼承於Service基類)也與Activity元件類似,區別是:Service元件通常執行在後臺,一般不與使用者互動,沒有圖形使用者介面
4.建立UI佈局的方式有兩種,(體現MVC原則) 自己在Java裡寫程式碼或者通過XML定義佈局,後者顯得更加方便和容易理解! 也是我們最常用的手段!
如:在layout檔案下定義first_layout.xml檔案並進行編輯,然後在java程式碼中使用setContentView(R.layout.first_layout)來顯示first_layout.xml的檢視效果
由於一個Activity可以有多個相同或不性質的元件,所以使用id來區分它們,使用android:id可以做到(在XML檔案中使用的id值是英文,然後在R檔案中會自動在id類中加上一個button_1的變數並給它賦值),如定義一個id為"button_1"的Button元件,的id定義形式如:android:id="@+id/button_1",如果想在java檔案中訪問這個元件,可以通過
findViewById(R.id.button_1),訪問id為button_1的按鈕元件(注意,該函式返回的是一個View物件,而元件都是View的物件或者其子類的物件,所以需要向下轉型),一旦獲得元件後,就可以通過程式碼來控制各UI元件的外觀行為了,如為UI元件繫結事件監聽器等
控制UI元件的XML屬性都有對應的方法:
如android:id 相關方法是setId(int)
5.一般使用XML檔案控制變化小、行為比較固定的元件,而java程式碼控制變化較多、行為比較複雜的元件
6.所有的佈局管理器如LinearLayout、TableLayout、FrameLayout、AbsoluteLayout、RelativeLayout都是ViewGroup的子類,addView(View child)在ViewGroup中實現,所以佈局管理器可以使用addView方法向佈局管理器所代表的佈局新增其他元件
7.表格佈局:TableLayout,是通過其他元件決定行和列的多少的下:
android:stretchColumns="1,2"(與陣列相似)表示2,3列可以被拉伸(使元件填滿指定列),還有被收縮:android:shrinkColomns,被隱藏:android:collapseColumn,先在表格佈局中定義指定哪一列的行為,然後再在TableRow中對每一列增加元件。
而TableRow是向TableLayout表格佈局中新增行的XML標籤.
8.LinearLayout線性佈局:控制各元件的對齊、排列關係,有XML屬性:
android:gravity="bottom|center_vertical" ,各元件垂直居中處於螢幕中心對齊
android:orientation="vertical"垂直排列

 

相關文章