Android应用开发——布局管理

版权声明:转载请注明出处 https://blog.csdn.net/Zach_z/article/details/80587712

代码工程下载链接

一、设计目的

  1. 了解四种布局管理器的区别和各自特别的属性
  2. 掌握四种布局管理器的应用场合和用法
  3. 灵活使用四种布局文件管理器和嵌套实现各种复杂布局
  4. 掌握复用XML布局文件的方法
  5. 掌握代码控制UI界面的方法

二、软硬件环境

开发环境:Android Studio
模拟运行:Android Emulator – Nexus_5X_API_24

三、实现过程及结果

3.1 用Java代码设置全屏:打开工程的主Activity文件,在onCreate方法中执行语句super.onCreate(saveInstanceState)之前,添加语句:

requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐藏标题栏
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//隐藏运营图标、点量等
super.onCreate(savedInstanceState);

3.2 完成Android应用UI的开发

3.2.1 将主布局修改为线性布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFAE4"
    android:orientation="vertical"
    >

3.2.2 在主布局中添加一个现实logo的ImageView组件

<ImageView
        android:layout_width="match_parent"
        android:layout_height="81dp"
        android:src="@mipmap/test3"/>

3.2.3 主布局中继续添加一个线性布局,该布局分为两列,分别放置头像和表格布局,表格布局也分为两行,放置用户名和密码

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="90dp"
            android:src="@mipmap/ic_launcher"/>
        <TableLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TableRow>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="账号:"/>
                <EditText
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/user"/>
            </TableRow>
            <TableRow>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:minWidth="300px"
                    android:text="密码:"/>
                <EditText
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/password"
                    android:inputType="textPassword"/>
            </TableRow>
        </TableLayout>
    </LinearLayout>

3.2.4 在主布局中继续添加一个登陆按钮

<Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="登录"
        android:onClick="login"/>

3.2.5 在主布局中继续添加三个已选中的复选框,分别为记住密码,自动登陆和接收产品推广

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="记住密码"/>
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="自动登录"/>
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="接收推广"/>

3.2.6 在主布局中继续添加一个布局管理器,该布局管理中防止忘记密码和注册账号两个按钮

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:text="忘记密码"
            android:onClick="forgetpassword"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:text="注册账号"
            android:onClick="register"/>
    </FrameLayout>

3.2.7 在主布局中继续添加一个布局管理器,该布局管理器放置进度条和表示加载中的文本框

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="63dp"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/loading"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <ProgressBar
            style="?android:attr/progressBarStyleSmall"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:layout_marginBottom="10dp" />

</LinearLayout>

3.3 在主Activity文件中添加用于登陆的login方法,用于处理忘记密码的forgetPassword方法,用于打开注册界面的register方法

public void login(View view){
        if( true ){
            StringBuilder sb = new StringBuilder();

            sb.append("登录成功!"+"\n");
            sb.append("用户名:" + userName.getText().toString()+"\n");
            sb.append("密码:" + password.getText().toString()+"\n");

            Toast.makeText(this, sb.toString(), Toast.LENGTH_LONG).show();

            Intent intent = new Intent();   //登录到ResultActivity页面
            intent.setClass(this, ResultActivity.class);
            intent.putExtra("info", sb.toString());
            this.startActivity(intent);
        }
    }

    //打开忘记密码界面
    public void forgetpassword(View view){
        StringBuilder sb = new StringBuilder();

        Intent intent = new Intent();
        intent.setClass(this, ForgetPassActivity.class);
        intent.putExtra("info", sb.toString());
        this.startActivity(intent);
    }

    //打开注册界面
    public void register(View view){
        StringBuilder sb = new StringBuilder();

        Intent intent = new Intent();
        intent.setClass(this, RegisterActivity.class);
        intent.putExtra("info", sb.toString());
        this.startActivity(intent);
    }

3.4 界面布局后界面如图:

这里写图片描述

3.5 输入内容以及点击登陆后界面如图:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/Zach_z/article/details/80587712
今日推荐