今天學習Android遇到問題點:
1.Android 相關目錄中不能出現空格,否則會報以下錯誤:
project location should not contain whitespace,as this can cause problems with the NDK tools。
2. 使用logi輸出時提示:TAG has private access in"android.support.v4.app.FragmentActivity"
解決方法:定義一個常數 TAG?在?MainActivity?:
private static final String TAG = "MainActivity"
今天主要學習目錄
1.Android UI布局
2.LinerLayout
3.RelativeLayout
附注:練習code
一、Andorid UI布局
UI 布局有一些Android提供的布局,可以使用在幾乎所有的Android應用程序提供不同的視圖,外觀和風格。
S.N.布局和說明
LinearLayout視圖組,所有的子視圖在單一的方向對齊,垂直或水平。?
RelativeLayout相對位置顯示子視圖的視圖組。?
TableLayout一種視圖,組視圖分為行和列。?
AbsoluteLayout?使能夠指定其子視圖的確切位置。?
FrameLayout?屏幕上是一個占位符,可以用它來顯示一個單一的視圖。?
ListView顯示滾動項目列表視圖組。?
GridView 網格控件是一種ViewGroup用于顯示一個二維,滾動的網格的項目。?
布局屬性
每個布局都有一組屬性,它定義布局的視覺屬性。所有布局中,有幾個共同的屬性和其他屬性布局。以下是常見的屬性并可以應用到所有的布局中:
屬性描述
android:id唯一地標識該視圖的ID
android:layout_width布局的寬度
android:layout_height這是布局的高度
android:layout_marginTop這是關于布局的頂側的額外的空間
android:layout_marginBottom在布局上的底側的額外的空間
android:layout_marginLeft在布局上的左側的額外的空間
android:layout_marginRight在右側的布局的額外空間
android:layout_gravity它指定子視圖被定位
android:layout_weight指定有多少布局額外的空間應該分配給視圖
android:layout_x指定布局的x坐標
android:layout_y此指定布局的y坐標
android:layout_width布局的寬度
android:layout_width布局的寬度
android:paddingLeft布局的左填充
android:paddingRight布局的右填充
android:paddingTop布局頂部填充
android:paddingBottom布局底部填充
屬性說明:
可以指定寬度和高度精確的測量,但更多的時候,使用這些常量作為寬度或高度設置:
android:layout_width=wrap_content?告訴視圖,其內容所需要的尺寸大小本身。
android:layout_width=fill_parent?告訴視圖如其父視圖一樣尺寸大小。
視圖標識
一個視圖對象有一個唯一的ID分配給它,用于唯一識別視圖。ID在XML標簽的語法是:
android:id="@+id/my_button"
以下是@+ 符號的簡要說明:
在符號(@)開頭的字符串表示XML解析器解析和擴展ID字符串的其余部分,將其識別為一個ID的資源。
加號(+)表示,這是一個新的資源名,必須創建并添加到資源中。要創建一個視圖對象的實例,并捕捉到它的布局,使用以下命令:
Button myButton = (Button) findViewById(R.id.my_button);
二、LinearLayout
LinearLayout屬性
以下是具體 LinearLayout 的重要屬性:
屬性描述
android:id這是布局的唯一標識ID。
android:baselineAligned這必須是一個布爾值,要么“true”或“false”,并防止布局調整其子的基線。
android:divider這是繪制按鈕之間的垂直分隔。使用顏色值,它們的格式如:"#rgb", "#argb", "#rrggbb" 和 "#aarrggbb"。
android:gravity指定對象應該如何定位它的內容,無論是在X軸還是Y軸。可能的值是top, bottom, left, right, center, center_vertical, center_horizontal等。
android:orientation這種安排指定的方向,可以用“horizontal”表示為一排,“vertical”表示一列。默認是水平的。
三、RelativeLayout?
Android 的 RelativeLayout 可以指定子視圖如何彼此相對定位。每個視圖的位置可以被指定為相對于同級元素或相對于父視圖。
RelativeLayout 屬性
以下是RelativeLayout 具體的屬性:
屬性描述
android:id這是布局的唯一標識ID。
android:gravity這指定對象應該如何定位它的內容,無論是X軸和Y軸。可能的值是top, bottom, left, right, center, center_vertical, center_horizontal等。
android:ignoreGravity這表示什么視圖應該不受到重力影響。
使用RelativeLayout可以調整兩個元素右邊界或使一個下面跟著另一個視圖,居中于屏幕上,中心,左側等等。默認情況下,所有子視圖都在左上角的布局,所以必須定義使用RelativeLayout.LayoutParams和一些重要屬性的布局屬性,每個視圖的位置如下給出:
屬性描述
android:layout_above位置上面給定錨點視圖ID此視圖的底部邊緣,必須引用另一個資源,在形式?"@[+][package:]type:name"
android:layout_alignBottom name的下面 形式 "@[+][package:]type:name".
android:layout_alignLeft 左對齊 使用形式 "@[+][package:]type:name".
android:layout_alignParentBottom如果為true 底部同父視圖,要么“true”或“false”。
android:layout_alignParentEnd如果為true,尾部同父視圖,要么“true”或“false”。
android:layout_alignParentLeft如果為true,左邊同父視圖,要么“true”或“false”。
android:layout_alignParentRight如果為true,右邊同父視圖,要么“true”或“false”。
android:layout_alignParentStart如果為true,使得此視圖開始邊緣匹配父的開始邊緣。必須是一個布爾值,要么“true”或“false”。
android:layout_alignParentTop如果為true,使得此視圖的頂部邊緣相匹配的父的頂部邊緣。必須是一個布爾值,要么“true”或“false”。
android:layout_alignRight使得此視圖的右邊緣匹配給定的錨點視圖ID的右邊緣,并且必須是一個引用另一個資源,在形式 "@[+][package:]type:name".
android:layout_alignStart使得此視圖開始邊緣的匹配給定的錨點視圖ID開始邊緣,必須引用另一個資源,在表格 "@[+][package:]type:name".
android:layout_alignTop使得此視圖的頂部邊緣匹配給定的錨點視圖ID的頂邊緣,并且必須是一個引用到另一個資源,在形式 "@[+][package:]type:name".
android:layout_below定位此視圖低于給定錨點視圖ID的頂邊緣,并且必須是一個引用到另一個資源,在形式 "@[+][package:]type:name".
android:layout_centerHorizontal如果為true,中心這個子視圖水平在其父之內。必須是一個布爾值,要么“true”或“false”。
android:layout_centerInParent如果為true,使此子視圖中心水平和垂直其父之內。必須是一個布爾值,要么“true”或“false”。
android:layout_centerVertical如果為true,該中心子垂直在其父之內。必須是一個布爾值,要么“true”或“false”。
android:layout_toEndOf此視圖給定錨點視圖ID結束邊緣位置,必須引用另一個資源,在格式 "@[+][package:]type:name".
android:layout_toLeftOf此視圖給定錨點視圖ID的左邊的右邊位置,必須做個參考其他資源,在形式 "@[+][package:]type:name".
android:layout_toRightOf定位此視圖為給定的錨點視圖ID的右左邊緣和必須是引用到另一個資源,在形式 "@[+][package:]type:name".
android:layout_toStartOf定位此視圖為給定的錨點視圖ID的開始的端部邊緣,并且必須是一個引用到另一個資源,在形式 "@[+][package:]type:name".