• 网络记事本第二阶段第三天


    今天我进行登录界面

    主要界面的搭建,可以实现登陆功能

    package com.example.myapplication;
    
    import android.animation.Animator;
    import android.animation.AnimatorListenerAdapter;
    import android.animation.ValueAnimator;
    import android.content.Intent;
    import android.graphics.Rect;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.text.Editable;
    import android.text.TextUtils;
    import android.text.TextWatcher;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.ViewTreeObserver;
    import android.view.animation.DecelerateInterpolator;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ImageButton;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    import android.widget.Toast;
    
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener, View.OnFocusChangeListener, ViewTreeObserver.OnGlobalLayoutListener, TextWatcher {
    
        private String TAG = "ifu25";
    
        private ImageButton mIbNavigationBack;
        private LinearLayout mLlLoginPull;
        private View mLlLoginLayer;
        private LinearLayout mLlLoginOptions;
        private EditText mEtLoginUsername;
        private EditText mEtLoginPwd;
        private LinearLayout mLlLoginUsername;
        private ImageView mIvLoginUsernameDel;
        private Button mBtLoginSubmit;
        private LinearLayout mLlLoginPwd;
        private ImageView mIvLoginPwdDel;
        private ImageView mIvLoginLogo;
        private LinearLayout mLayBackBar;
        private TextView mTvLoginForgetPwd;
        private Button mBtLoginRegister;
    
        //全局Toast
        private Toast mToast;
    
        private int mLogoHeight;
        private int mLogoWidth;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main_login);
    
            initView();
        }
    
        //初始化视图
        private void initView() {
            //登录层、下拉层、其它登录方式层
            mLlLoginLayer = findViewById(R.id.ll_login_layer);
            mLlLoginPull = findViewById(R.id.ll_login_pull);
            mLlLoginOptions = findViewById(R.id.ll_login_options);
    
            //导航栏+返回按钮
            mLayBackBar = findViewById(R.id.ly_retrieve_bar);
            mIbNavigationBack = findViewById(R.id.ib_navigation_back);
    
            //logo
            mIvLoginLogo = findViewById(R.id.iv_login_logo);
    
            //username
            mLlLoginUsername = findViewById(R.id.ll_login_username);
            mEtLoginUsername = findViewById(R.id.et_login_username);
            mIvLoginUsernameDel = findViewById(R.id.iv_login_username_del);
    
            //passwd
            mLlLoginPwd = findViewById(R.id.ll_login_pwd);
            mEtLoginPwd = findViewById(R.id.et_login_pwd);
            mIvLoginPwdDel = findViewById(R.id.iv_login_pwd_del);
    
            //提交、注册
            mBtLoginSubmit = findViewById(R.id.bt_login_submit);
            mBtLoginRegister = findViewById(R.id.bt_login_register);
    
            //忘记密码
            mTvLoginForgetPwd = findViewById(R.id.tv_login_forget_pwd);
            mTvLoginForgetPwd.setOnClickListener(this);
    
            //注册点击事件
            mLlLoginPull.setOnClickListener(this);
            mIbNavigationBack.setOnClickListener(this);
            mEtLoginUsername.setOnClickListener(this);
            mIvLoginUsernameDel.setOnClickListener(this);
            mBtLoginSubmit.setOnClickListener(this);
            mBtLoginRegister.setOnClickListener(this);
            mEtLoginPwd.setOnClickListener(this);
            mIvLoginPwdDel.setOnClickListener(this);
            findViewById(R.id.ib_login_weibo).setOnClickListener(this);
            findViewById(R.id.ib_login_qq).setOnClickListener(this);
            findViewById(R.id.ib_login_wx).setOnClickListener(this);
    
            //注册其它事件
            mLayBackBar.getViewTreeObserver().addOnGlobalLayoutListener(this);
            mEtLoginUsername.setOnFocusChangeListener(this);
            mEtLoginUsername.addTextChangedListener(this);
            mEtLoginPwd.setOnFocusChangeListener(this);
            mEtLoginPwd.addTextChangedListener(this);
        }
    
        @Override
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.ib_navigation_back:
                    //返回
                    finish();
                    break;
                case R.id.et_login_username:
                    mEtLoginPwd.clearFocus();
                    mEtLoginUsername.setFocusableInTouchMode(true);
                    mEtLoginUsername.requestFocus();
                    break;
                case R.id.et_login_pwd:
                    mEtLoginUsername.clearFocus();
                    mEtLoginPwd.setFocusableInTouchMode(true);
                    mEtLoginPwd.requestFocus();
                    break;
                case R.id.iv_login_username_del:
                    //清空用户名
                    mEtLoginUsername.setText(null);
                    break;
                case R.id.iv_login_pwd_del:
                    //清空密码
                    mEtLoginPwd.setText(null);
                    break;
                case R.id.bt_login_submit:
                    //登录
                    loginRequest();
                    break;
                case R.id.bt_login_register:
                    //注册
                    startActivity(new Intent(MainActivity.this, RegisterActivity.class));
                    break;
                case R.id.tv_login_forget_pwd:
                    //忘记密码
                    startActivity(new Intent(MainActivity.this, ForgetPwdActivity.class));
                    break;
                case R.id.ll_login_layer:
                case R.id.ll_login_pull:
                    mLlLoginPull.animate().cancel();
                    mLlLoginLayer.animate().cancel();
    
                    int height = mLlLoginOptions.getHeight();
                    float progress = (mLlLoginLayer.getTag() != null && mLlLoginLayer.getTag() instanceof Float) ? (float) mLlLoginLayer.getTag() : 1;
                    int time = (int) (360 * progress);
    
                    if (mLlLoginPull.getTag() != null) {
                        mLlLoginPull.setTag(null);
                        glide(height, progress, time);
                    } else {
                        mLlLoginPull.setTag(true);
                        upGlide(height, progress, time);
                    }
                    break;
                case R.id.ib_login_weibo:
                    weiboLogin();
                    break;
                case R.id.ib_login_qq:
                    qqLogin();
                    break;
                case R.id.ib_login_wx:
                    weixinLogin();
                    break;
                default:
                    break;
            }
        }

    参考了https://blog.csdn.net/ifu25/article/details/83182334

    可以实现登陆界面

  • 相关阅读:
    iOS面试题及答案大总结
    iOS 画音频波形曲线 根据音频数据版
    iPhone-获取网络数据或者路径的文件名
    python语言使用yaml 管理selenium元素
    出现事故后我们怎么复盘分析
    如何提升测试质量,减少漏测
    robotframework环境搭建
    如何做ui自动化---步骤详解
    Jenkins报错Caused: java.io.IOException: Cannot run program "sh" (in directory "D:JenkinsJenkins_homeworkspacejmeter_test"): CreateProcess error=2, 系统找不到指定的文件。
    使用jmeter使用Jenkins发送自定义消息内容
  • 原文地址:https://www.cnblogs.com/520520520zl/p/12984230.html
Copyright © 2020-2023  润新知