1. 程式人生 > 實用技巧 >android studio中LinearLayout線性佈局

android studio中LinearLayout線性佈局

我們這次主要完成如下圖片的佈局

我們打算用線性佈局來完成。下面放上我的程式碼並對程式碼進行分析。

<?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>