android studio中LinearLayout線性佈局
阿新 • • 發佈:2020-10-10
我們這次主要完成如下圖片的佈局
我們打算用線性佈局來完成。下面放上我的程式碼並對程式碼進行分析。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" //填滿整個螢幕android:layout_height="match_parent" android:orientation="vertical" //設定方向為垂直 tools:context="activity.LoginActivity"> <!--第一層 用來放置最上面的照片--> <LinearLayout android:layout_width="match_parent" //寬度為介面的寬度 android:layout_height="wrap_content" //layout_height設定為wrap_content這樣介面的高度的大小剛好包含內容android:background="@color/colorPrimary" android:orientation="vertical"> <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="wrap_content" app:srcCompat="@drawable/default_user_logo"/> </LinearLayout> <!--第二層 --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="5dp" //與介面左邊的距離為5dp dp的含義自行百度 android:layout_marginTop="50dp" //與上一個介面的距離為50dp android:layout_marginRight="5dp" //與介面右邊的距離為5dp android:orientation="vertical" > <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="使用者暱稱" /> <EditText android:id="@+id/editTextName" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="textPersonName" //輸入型別為人名 android:text="" /> <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="密碼" /> <EditText android:id="@+id/editTextPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="textPassword" /> //輸入型別為密碼 <Button android:id="@+id/buttonLogin" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#FF8833" //背景顏色為橙色 android:text="登入" /> </LinearLayout> <!--第三層 --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="20dp" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:orientation="horizontal"> <!--讓下面兩個文字框偏右 --> <TextView android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="" /> <TextView android:id="@+id/textViewNoPassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:text="忘記密碼" /> <TextView android:id="@+id/textViewRegister" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:text="註冊使用者" /> </LinearLayout> </LinearLayout>
第二行說明整體的佈局是LinearLayout,接下來是這個介面的引數。XML名稱空間定義語法為:xmlns:namespace-prefix="namespaceURI"
xmlns:宣告名稱空間的保留字 namespace-prefix:名稱空間的字首 namespaceURI:名稱空間的唯一識別符號。其中的android用於Android系統定義的一些屬性;app用於自定義一些屬性;tools可以用於減少或者避免黃線提醒,壓縮資原始檔,降低APK體積等。
這個介面我們由三個LinearLayout元件構成。如下圖所示。
在第一個中,我們就放置了一張照片。在第二層中我們放了兩個textView控制元件,來提示使用者輸入姓名和密碼。姓名用的是Plain Text控制元件,密碼用的是Password Text空間。在這一層中還加入了一個button。最後三層我們放了三個textView空間。我們還把一些控制元件的id值改成了與其功能有關的詞,而不是採用其預設值了,主要是為了後面用的時候方便,因為主要操作id值。在每一個LinearLayout下的一開始,都是其屬性的設定。然後在這個下具體的控制元件也有設定。所有有三層屬性的設定。要想得到自己想要的介面,將要想清這三層的設定。具體的一些設定,我放在註釋中。但是我沒找到在行後面註釋的方法,就用//來註釋,注意這是錯誤的。要是知道怎麼註釋的,麻煩在評論中教我一下。
為了讓模擬器顯示這個登入介面,在AndroidManifest中將<intent-filter>放在相應的activity中。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zstu.tinyaccount"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name="activity.LoginActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SecondActivity" /> <activity android:name=".MainActivity"> </activity> </application> </manifest>