安卓中注册登录功能模块的编写

一、前言

很多的应用程序都有登录功能模块,这里的登录注册功能只是简单地模拟了登录注册的过程,并没有真正的发送短信、接收短信的功能。如果想要实现这样的功能,就需要借助第三方平台,比如Bomb。

二、界面截图
  1. 登录界面
    在该界面只要输入了用户名和密码,再点击登录就能进入到主界面。用户名和密码是可以随便输入的,因为只是一个模拟过程,如果需要真的登录,就需要另外添加登录的逻辑了。
    在这里插入图片描述
  2. 注册界面
    该界面同样也是一个模拟过程,如果童鞋们需要实现真的注册,建议可以简单的使用SQLite数据库,也就是将用户数据保存在安卓中的SQLite数据库当中。我觉得这样是足以应付课程的作业的,因为大学里的安卓开发课程,要求也没那么高,登录注册功能也就是用来凑界面的,当时我们的作业是要求至少8个界面的。
    在这里插入图片描述
  3. 主界面
    主界面其实什么都没有,就只有Hello World!因为分享这个模块出来就是给大家去改造的,在这里你可以另外编写代码,实现自己想要的功能。
    在这里插入图片描述
三、代码
1、java代码
  1. 登录LoginActivity.java
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

/**
 * 登录界面
 */
public class LoginActivity extends AppCompatActivity implements View.OnClickListener
{
    private EditText editPerson, editCode;
    private TextView textViewR;
    private Button btn;
    private boolean autoLogin = false;
    public static String currentUsername;
    private String currentPassword;
    private boolean progressShow;
    private ImageView qq, weixin, weibo;

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


    private void init()
    {
        btn =findViewById(R.id.bn_common_login);
        btn.setOnClickListener(this);
        editCode =findViewById(R.id.et_password);
        editPerson =findViewById(R.id.et_username);
        textViewR = findViewById(R.id.tv_register);
        qq =  findViewById(R.id.iv_qq_login);
        weixin =  findViewById(R.id.iv_weixin_login);
        weibo = findViewById(R.id.iv_sina_login);
        qq.setOnClickListener(this);
        weixin.setOnClickListener(this);
        weibo.setOnClickListener(this);
        textViewR.setOnClickListener(this);
    }

    /**
     * 点击事件
     * */
    @Override
    public void onClick(View v)
    {
        switch (v.getId())
        {
            case R.id.bn_common_login:  //登录按钮
                login(v);
                break;
            case R.id.tv_register:  //注册按钮
                Intent intent = new Intent(this, RegisterActivity.class);
                startActivity(intent);
                finish();
                break;
            case R.id.iv_qq_login:  //QQ登录
                Toast.makeText(this, "QQ登录", Toast.LENGTH_SHORT).show();
                break;
            case R.id.iv_weixin_login:  //微信登录
                Toast.makeText(this, "微信登录", Toast.LENGTH_SHORT).show();
                break;
            case R.id.iv_sina_login:    //微博登录
                Toast.makeText(this, "微博登录", Toast.LENGTH_SHORT).show();
                break;
                default:

        }
    }

    @Override
    protected void onResume()
    {
        super.onResume();
        if (autoLogin)
        {
            return;
        }
    }

    /**
     * 登录
     *
     * @param view
     */
    public void login(View view)
    {

        currentUsername = editPerson.getText().toString().trim(); //去除空格,获取手机号
        currentPassword = editCode.getText().toString().trim();  //去除空格,获取密码

        if (TextUtils.isEmpty(currentUsername))
        { //判断手机号是不是为空
            Toast.makeText(this, "手机号不能为空!", Toast.LENGTH_SHORT).show();
            return;
        }
        if (TextUtils.isEmpty(currentPassword))
        {  //判断密码是不是空
            Toast.makeText(this, "密码不能为空!", Toast.LENGTH_SHORT).show();
            return;
        }

        progressShow = true;
        final ProgressDialog pd = new ProgressDialog(LoginActivity.this);  //初始化等待动画
        /**
         * 设置监听
         * */
        pd.setCanceledOnTouchOutside(false);
        pd.setOnCancelListener(new DialogInterface.OnCancelListener()
        {

            @Override
            public void onCancel(DialogInterface dialog)
            {
                progressShow = false;   //设置Boolean值为false
            }
        });
        pd.setMessage("正在登录....");  //等待动画的标题
        pd.show();  //显示等待动画

        new Thread(new Runnable()
        {
            public void run()
            {
                //在此处睡眠两秒
                try
                {
                    Thread.sleep(2000);  //在此处睡眠两秒
                } catch (InterruptedException e)
                {
                }

                /**
                 * 两秒之后
                 * */
                pd.dismiss();    //等待条消失
                Intent intent = new Intent(LoginActivity.this, MainActivity.class);  //进入主界面
                startActivity(intent);  //开始跳转
                finish();  //finish掉此界面
            }
        }).start();  //开始线程

    }
}

  1. 注册RegisterActivity.java
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Looper;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

/**
 * 注册界面
 */
public class RegisterActivity extends AppCompatActivity implements View.OnClickListener
{
    private EditText editTextP, editSMS, editTextCT;
    private Button button,SMSBtn;
    private TextView enterText;
    private ImageView returnImage;

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

    private void init()
    {
        editTextP = findViewById(R.id.et_phone_num);
        editSMS = findViewById(R.id.et_sms_code);
        editTextCT =  findViewById(R.id.et_password);
        button = findViewById(R.id.bn_immediateRegistration);
        button.setOnClickListener(this);
        enterText =  findViewById(R.id.tv_enter);
        enterText.setOnClickListener(this);
        returnImage =  findViewById(R.id.iv_return);
        returnImage.setOnClickListener(this);
        SMSBtn =  findViewById(R.id.bn_sms_code);
        SMSBtn.setOnClickListener(this);
    }

    @Override
    public void onClick(View v)
    {
        switch (v.getId())
        {
            case R.id.bn_immediateRegistration:
                register();
                break;
            case R.id.tv_enter:
                returnEnter();
                break;
            case R.id.iv_return:
                returnEnter();
                break;
            case R.id.bn_sms_code:
                final String username = editTextP.getText().toString().trim();
                if (TextUtils.isEmpty(username))
                {
                    Toast.makeText(this, "用户名不能为空!", Toast.LENGTH_SHORT).show();
                    editTextP.requestFocus();
                }else
                {
                    Toast.makeText(this, "验证码获取成功", Toast.LENGTH_SHORT).show();
                }
                break;
        }
    }

    private void returnEnter()
    {
        Intent intent = new Intent(this,LoginActivity.class);
        startActivity(intent);
        finish();
    }

    public void register()
    {
        final String username = editTextP.getText().toString().trim();
        final String password = editSMS.getText().toString().trim();
        String confirm_password = editTextCT.getText().toString().trim();
        if (TextUtils.isEmpty(username))
        {  //当手机号没有输入时
            Toast.makeText(this, "手机号不能为空!", Toast.LENGTH_SHORT).show();
            editTextP.requestFocus();//使输入框失去焦点
            return;
        } else if (TextUtils.isEmpty(password))
        {//当验证码没有输入时
            Toast.makeText(this, "验证码不能为空!", Toast.LENGTH_SHORT).show();
            editSMS.requestFocus();//使输入框失去焦点
            return;
        } else if (TextUtils.isEmpty(confirm_password))
        {//当注册密码没有输入时
            Toast.makeText(this, "密码不能为空!", Toast.LENGTH_SHORT).show();
            editTextCT.requestFocus();//使输入框失去焦点
            return;
        }
        if (!TextUtils.isEmpty(username) && !TextUtils.isEmpty(password))
        {
            final ProgressDialog pd = new ProgressDialog(this);
            pd.setMessage("正在注册……");
            pd.show();

            new Thread(new Runnable()
            {
                public void run()
                {
                    //注册的操作放在此处
                    try
                    {
                        Thread.sleep(2000);
                    } catch (InterruptedException e)
                    {

                    }
                    pd.dismiss();
                    Looper.prepare();
                    Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();
                    Looper.loop();// 进入loop中的循环,查看消息队列
                }
            }).start();

        }
    }
}

  1. 主界面MainActivity.java
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity 
{

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

2、界面代码
  1. 登录的界面activity_login.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#f2f2f2"
    android:orientation="vertical" >

    <LinearLayout style="@style/top_nav" >

        <ImageView
            android:id="@+id/iv_return"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="8dp"
            android:src="@drawable/ico_commen_back" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:text="登录"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/tv_register"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="8dp"
            android:text="注册"
            android:textColor="#404040"
            android:textSize="14sp" />
    </LinearLayout>
    <View style="@style/common_line_gray_90"/>
    <LinearLayout
        android:layout_width="72dp"
        android:layout_height="72dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginBottom="20dp"
        android:layout_marginTop="30dp"
        android:background="@drawable/bg_radius_sign" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ico_sign_logo" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="40dp"
        android:layout_marginRight="40dp"
        android:background="#ffffff"
        android:orientation="vertical" >

        <View
            android:layout_width="fill_parent"
            android:layout_height="1px"
            android:background="#07a6e6" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:gravity="center"
            android:orientation="horizontal" >

            <ImageView
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="8dp"
                android:src="@drawable/ico_sign_01" />

            <EditText
                android:id="@+id/et_username"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@null"
                android:gravity="center_vertical"
                android:hint="用户名/手机号"
                android:textColor="@android:color/darker_gray"
                android:textColorHint="@android:color/darker_gray"
                android:textSize="14sp" />
        </LinearLayout>

        <View
            android:layout_width="fill_parent"
            android:layout_height="1px"
            android:layout_marginLeft="28dp"
            android:layout_marginRight="28dp"
            android:background="#d9d9d9" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:gravity="center"
            android:orientation="horizontal" >

            <ImageView
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="8dp"
                android:src="@drawable/ico_sign_02" />

            <EditText
                android:id="@+id/et_password"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@null"
                android:gravity="center_vertical"
                android:hint="密码"
                android:inputType="textPassword"
                android:textColor="@android:color/darker_gray"
                android:textColorHint="@android:color/darker_gray"
                android:textSize="14sp" />

        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="登录或注册则表示您同意"
            android:textColor="@android:color/darker_gray"
            android:textSize="13sp" />

        <TextView
            android:id="@+id/tv_termOfService"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingBottom="14dp"
            android:paddingTop="18dp"
            android:text="《使用条款》"
            android:textColor="#63d065"
            android:textSize="13sp" />
    </LinearLayout>

    <Button
        android:id="@+id/bn_common_login"
        android:layout_width="match_parent"
        android:layout_height="44dp"
        android:layout_marginLeft="40dp"
        android:layout_marginRight="40dp"
        android:background="@drawable/bg_radius_sign_btn"
        android:text="登  录"
        android:textColor="#ffffff"
        android:textSize="15sp" />

    <Button
        android:id="@+id/bn_forget_password"
        android:layout_width="wrap_content"
        android:layout_height="44dp"
        android:paddingLeft="12dp"
        android:layout_gravity="right"
        android:layout_marginRight="42dp"
        android:background="@null"
        android:text="忘记密码?"
        android:textColor="#4ebeea"
        android:textSize="13sp" />

    <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal"
        android:paddingLeft="54dp"
        android:paddingRight="54dp" >

        <View
            android:layout_width="0dp"
            android:layout_height="1px"
            android:layout_weight="1"
            android:background="#bfbfbf" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="28dp"
            android:layout_marginRight="28dp"
            android:text="更多登录"
            android:textColor="#999999"
            android:textSize="12sp" />

        <View
            android:layout_width="0dp"
            android:layout_height="1px"
            android:layout_weight="1"
            android:background="#bfbfbf" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="12dp"
        android:layout_marginTop="12dp"
        android:gravity="center"
        android:orientation="horizontal"
        android:paddingLeft="18dp"
        android:paddingRight="18dp" >

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >

            <ImageView
                android:id="@+id/iv_qq_login"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_marginBottom="3dp"
                android:src="@drawable/ico_sign_04" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="QQ登录"
                android:textColor="#999999"
                android:textSize="13sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >

            <ImageView
                android:id="@+id/iv_weixin_login"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_marginBottom="3dp"
                android:src="@drawable/ico_sign_05" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="微信登录"
                android:textColor="#999999"
                android:textSize="13sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >

            <ImageView
                android:id="@+id/iv_sina_login"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_marginBottom="3dp"
                android:src="@drawable/ico_sign_06" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="微博登录"
                android:textColor="#999999"
                android:textSize="13sp" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>
  1. 注册的界面activity_register.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#f2f2f2"
    android:orientation="vertical" >

    <LinearLayout style="@style/top_nav">

        <ImageView
            android:id="@+id/iv_return"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="8dp"
            android:src="@drawable/ico_commen_back" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:text="注册"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/tv_enter"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:padding="8dp"
            android:text="登录"
            android:textColor="#404040"
            android:textSize="14sp" />
    </LinearLayout>

    <View style="@style/common_line_gray_90"/>

    <!-- 注册 -->

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="24dp"
        android:layout_marginRight="24dp"
        android:layout_marginTop="24dp"
        android:background="#ffffff"
        android:orientation="vertical" >

        <View
            android:layout_width="fill_parent"
            android:layout_height="1px"
            android:background="#07a6e6" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="44dp"
            android:gravity="center"
            android:orientation="horizontal" >

            <ImageView
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="8dp"
                android:src="@drawable/ico_sign_01" />

            <EditText
                android:id="@+id/et_phone_num"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:background="@null"
                android:gravity="center_vertical"
                android:hint="请填写手机号"
                android:inputType="number"
                android:textColor="@android:color/darker_gray"
                android:textColorHint="@android:color/darker_gray"
                android:textSize="14sp" />

            <Button
                android:id="@+id/bn_sms_code"
                android:layout_width="88dp"
                android:layout_height="28dp"
                android:layout_marginRight="6dp"
                android:background="@drawable/bg_radius_register_btn"
                android:text="获取验证码"
                android:textColor="#9507a6e6"
                android:textSize="12sp" />
        </LinearLayout>

        <View
            android:layout_width="fill_parent"
            android:layout_height="1px"
            android:layout_marginLeft="28dp"
            android:layout_marginRight="28dp"
            android:background="#d9d9d9" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="44dp"
            android:gravity="center"
            android:orientation="horizontal" >

            <ImageView
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="8dp"
                android:src="@drawable/ico_sign_03" />

            <EditText
                android:id="@+id/et_sms_code"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:background="@null"
                android:gravity="center_vertical"
                android:hint="短信验证码"
                android:inputType="number"
                android:textColor="@android:color/darker_gray"
                android:textColorHint="@android:color/darker_gray"
                android:textSize="14sp" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="6dp"
                android:background="@null"
                android:text="收不到?"
                android:visibility="gone"
                android:textColor="#4c4c4c"
                android:textSize="12sp" />
        </LinearLayout>

        <View
            android:layout_width="fill_parent"
            android:layout_height="1px"
            android:layout_marginLeft="28dp"
            android:layout_marginRight="28dp"
            android:background="#d9d9d9" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="44dp"
            android:gravity="center"
            android:orientation="horizontal" >

            <ImageView
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="8dp"
                android:src="@drawable/ico_sign_02" />

            <EditText
                android:id="@+id/et_password"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@null"
                android:gravity="center_vertical"
                android:hint="设置登录密码"
                android:inputType="textPassword"
                android:textColor="@android:color/darker_gray"
                android:textColorHint="@android:color/darker_gray"
                android:textSize="14sp" />

        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="登录或注册则表示您同意"
            android:textColor="@android:color/darker_gray"
            android:textSize="13sp"
            android:id="@+id/textView" />

        <TextView
            android:id="@+id/tv_termOfService"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingBottom="14dp"
            android:paddingTop="18dp"
            android:text="《使用条款》"
            android:textColor="#63d065"
            android:textSize="13sp" />
    </LinearLayout>

    <Button
        android:id="@+id/bn_immediateRegistration"
        android:layout_width="match_parent"
        android:layout_height="44dp"
        android:layout_marginLeft="24dp"
        android:layout_marginRight="24dp"
        android:background="@drawable/bg_radius_sign_btn"
        android:text="立即注册"
        android:textColor="#ffffff"
        android:textSize="15sp" />

    <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:id="@+id/view" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal"
        android:paddingLeft="54dp"
        android:paddingRight="54dp"
        android:visibility="gone" >

        <View
            android:layout_width="0dp"
            android:layout_height="1px"
            android:layout_weight="1"
            android:background="#bfbfbf" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="28dp"
            android:layout_marginRight="28dp"
            android:text="更多登录"
            android:textColor="#999999"
            android:textSize="12sp" />

        <View
            android:layout_width="0dp"
            android:layout_height="1px"
            android:layout_weight="1"
            android:background="#bfbfbf" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="12dp"
        android:layout_marginTop="12dp"
        android:gravity="center"
        android:orientation="horizontal"
        android:paddingLeft="18dp"
        android:paddingRight="18dp"
        android:visibility="gone" >

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="3dp"
                android:src="@drawable/ico_sign_04" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="QQ登录"
                android:textColor="#999999"
                android:textSize="13sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="3dp"
                android:src="@drawable/ico_sign_05" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="微信登录"
                android:textColor="#999999"
                android:textSize="13sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="3dp"
                android:src="@drawable/ico_sign_06" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="微博登录"
                android:textColor="#999999"
                android:textSize="13sp" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>
  1. 主界面activity_main.xml
<?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:gravity="center"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</LinearLayout>
四、项目地址

因为项目还需要用到一些图片资源,上面给出的只是活动的java代码和对应的布局代码,如果需要用到图片资源的话,可以去github把项目克隆或者是下载下来。
项目的github地址

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值