三,个性化定制App登录界面

本文介绍了如何设计一个具有个性化的Android登录界面,包括使用ConstraintLayout布局控件、TextView、EditText、RadioButton、RadioGroup、CheckBox、ImageView,以及实现版权信息和登录按钮的点击事件,同时在Logcat中显示用户输入信息。
摘要由CSDN通过智能技术生成
目录链接
一,项目实验——Android 线性布局http://t.csdnimg.cn/yDK2c
二,项目实验——Android 约束布局http://t.csdnimg.cn/TS73B
三,个性化定制App登录界面http://t.csdnimg.cn/x7q7D
四,项目实验——Activity与Intenthttp://t.csdnimg.cn/BlTbs

个性化定制App登录界面

一. 简答题(共1题,100分)

  1. (简答题)

个性化定制App登录界面
一、任务背景

你是一名996工程师,每天都在加班,很少有时间陪伴(男友/女友)。对方感到很失望,觉得你把工作看得比(他/她)还重要。

有一天,对方终于忍不住了,跟你发了脾气。你很抱歉,你拼命解释会尽快完成工作,然后尽量多陪陪对方。但(他/她)并不满意,说你每次都是这样道歉,毫无新意。

你感到很沮丧,你开始思考如何挽回对方的心。你不断反思你们之间的问题,突然,你想起了对方说的“毫无新意”,你明白了,原来(他/她)是生气你千篇一律、没有个性。于是,你想到了一个创意,这个创意会让对方刮目相看。你开始设计一个安卓App登录界面,这个登录界面与众不同,它不再是那些平凡无奇的登录界面,它是一个充满个性、时尚、便捷和安全的登录门户,可以让心爱的(他/她)在使用过程中感受到更多的精彩和乐趣。你希望能把这个登录界面展示给对方看,告诉她你并不是没有个性的人。

二、任务要求

1)25分;TextView、EditText、Button、RadioButton、RadioGroup、CheckBox和ImageView 七个控件每个至少使用1次;

2)25分;布局采用 ConstraintLayout;

3)25分;底部+居中放置一个字符串,显示“XXX版权所有”,其中XXX为姓名;

4)25分;点击“登录”按钮后,可以在Logcat显示用户输入的所有内容(字符串、选项等)。

三、答案形式与评分标准

3.1 答案形式

三个截图:

1)布局源码和预览截图(可以看到使用了什么布局和布局预览);

2)模拟器运行截图;

3)Logcat 输出截图(通过 tag 参数过滤后)。

3.2 评分标准

基本分80%(老师评):例如四个要求都满足,则基本分为 100×80%=80分

创新分20%(学生互评):依据个性化、创新程度给分,如打满100,则创新分为 100×20%=20分。

总分 = 基本分 × 80% + 创新分 × 20%

四、步骤参考

1)打开 Android Studio 并创建一个新项目;

2)在 res/layout 文件夹下打开 activity_main.xml 布局文件;

3)使用 TextView、EditText 等控件构造用户名和密码输入结构;

4)使用 RadioButton、RadioGroup、CheckBox 等控件构造其他输入信息结构;

5)使用 Button 构造登录按钮;

6)使用 ImageView 放置自己喜欢的图片;

7)底部居中放置一个 TextView,字符串设置为“XXX版权所有”,XXX为姓名;

8)在 MainActivity 类中,通过 findViewById 方法控件对应的对象;

9)给 Button 设置监听器,当登录按钮被点击时,可以在 Logcat 看到用户输入的所有信息。

五、答案示例

5.1 布局源码截图
在这里插入图片描述
5.2 模拟器运行截图

在这里插入图片描述
5.3 Logcat截图
在这里插入图片描述
六、注意事项

1)请仔细阅读任务要求,不要遗漏;

2)答案结果采用截图的形式,不要用手机拍照;

3)出现某些控件在预览中不显示的,优先检查 layout_width 和 layout_height 属性,检查是否被挡住;

4)在满足四个要求的基础上,可以DIY添加其他控件,尽情展现个性;

5)没对象也要做这个作业。

请添加图片描述

在这里插入图片描述
在这里插入图片描述

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:background="#fefefe"
    tools:context=".MainActivity">

    <TextView

        android:layout_width="match_parent"

        android:layout_height="60dp"
        android:background="#6750a4"
        android:id="@+id/top"
        android:text="登录"
        android:textSize="22dp"
        android:textColor="#FFFFFF"
        android:gravity="center"
        app:layout_constraintTop_toTopOf="parent"/>

    <TextView
        android:id="@+id/top2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="35dp"
        android:paddingLeft="30dp"
        android:text="欢迎访问我们的APP!"
        android:textColor="#797677"
        android:textSize="26dp"
        android:textStyle="bold"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/top"
        />


    <ImageView
        android:id="@+id/img"
        android:layout_width="288dp"
        android:layout_height="258dp"
        android:layout_marginTop="30dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/top2"
        android:background="@drawable/lingimg"
        />

    <EditText
        android:id="@+id/etAccount"
        android:layout_width="360dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:hint="请输入账号"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"

        app:layout_constraintTop_toBottomOf="@+id/img" />

    <EditText
        android:id="@+id/etPassword"
        android:layout_width="360dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:hint="请输入密码"
        android:inputType="textPassword"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"

        app:layout_constraintTop_toBottomOf="@+id/etAccount" />

    <RadioGroup
        android:id="@+id/radioB"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="10dp"

       android:layout_marginLeft="30dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/etPassword">

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioStudent"
            android:text="学生"
            android:textSize="15dp" />

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioTeacher"
            android:text="教师"
            android:textSize="15dp" />

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioParent"
            android:text="家长"
            android:textSize="15dp" />
    </RadioGroup>

    <CheckBox
        android:id="@+id/checkbox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="记住我"
        android:layout_marginLeft="30dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/radioB" />

    <Button
        android:id="@+id/login"
        android:layout_width="360dp"
        android:layout_height="50dp"
        android:text="登陆"
android:layout_marginTop="15dp"
        android:textSize="15dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/checkbox1" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="版权所有"
        android:textColor="#797677"
        android:textSize="12dp"

        app:layout_constraintBottom_toBottomOf="parent"

        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        android:layout_marginBottom="20dp"
         />


</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 获取登录按钮和账号密码输入框的引用
        Button loginButton = findViewById(R.id.login);
        final EditText accountEditText = findViewById(R.id.etAccount);
        final EditText passwordEditText = findViewById(R.id.etPassword);
        // 获取CheckBox的引用
        CheckBox checkBox = findViewById(R.id.checkbox1);

        RadioButton radioStudent = findViewById(R.id.radioStudent);
        RadioButton radioTeacher = findViewById(R.id.radioTeacher);
        RadioButton radioParent = findViewById(R.id.radioParent);


        // 为登录按钮设置点击事件的监听器
        loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 获取账号和密码的输入值
                String account = accountEditText.getText().toString();
                String password = passwordEditText.getText().toString();
                // 判断CheckBox是否被选中
                boolean isChecked = checkBox.isChecked();


                // 输出用户输入的信息到Logcat
                //输出密码关了password
                Log.i("MyText", "欢迎账号为 " + account + ", 登录成功!");
                if(radioStudent.isChecked()) {
                    Log.i("MyText", "您的身份为: " + radioStudent.getText().toString());
                }
                if(radioTeacher.isChecked()) {
                    Log.i("MyText", "您的身份为: " + radioTeacher.getText().toString());
                }
                if(radioParent.isChecked()) {
                    Log.i("MyText", "您的身份为: " + radioParent.getText().toString());
                }
                // 输出文本到Logcat
                Log.i("MyText", "是否记住登录账号:" + isChecked);
            }
        });
    }
}

  • 24
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值