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组件构成。如下图所示。

android studio中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>

 

android studio中LinearLayout线性布局

上一篇:linux进程之fork 和 exec函数


下一篇:高效使用Linux的七个习惯