• 仿淘宝登录


    注册博客园到申请博客还没有多长时间, 有一天看着别人的博客,突然自己也想整理一下博客,顺便理顺一下自己的思路。第一篇博客

    最近在做电商项目,登录的那块是模仿淘宝做的,先写一下布局文件吧

    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="60dp"
            android:layout_marginTop="8dp"
            android:gravity="center" >
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="30dp"
                android:layout_gravity="bottom"
                android:gravity="center"
                android:text="用户名:"
                android:textSize="20sp" />
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:layout_weight="1" >
    
                <EditText
                    android:id="@+id/et_user"
                    android:layout_width="0dp"
                    android:layout_height="60dp"
                    android:layout_marginLeft="25dp"
                    android:hint="手机号/会员/邮箱"
                    android:layout_weight="1" />
    
                
                <ImageView
                    android:visibility="gone"
                    android:id="@+id/image1"
                    android:layout_width="wrap_content"
                    android:layout_height="30dp"
                    android:layout_gravity="bottom"
                    android:src="@drawable/login_pager_delete_img" />
            </LinearLayout>
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="60dp"
            android:layout_marginTop="15dp"
            android:gravity="center" >
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="30dp"
                android:layout_gravity="bottom"
                android:gravity="center"
                android:text=" 密   码:"
                android:textSize="20sp" />
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="60dp" >
    
                <EditText
                    android:id="@+id/et_mima"
                    android:layout_width="0dp"
                    android:layout_height="60dp"
                    android:layout_marginLeft="25dp"
                    android:layout_weight="1"
                    android:hint="请输入密码"
                    android:password="true" />
    
                <ImageView
                    android:visibility="gone"
                    android:id="@+id/image2"
                    android:layout_width="wrap_content"
                    android:layout_height="30dp"
                    android:layout_gravity="bottom"
                    android:src="@drawable/login_pager_delete_img" />
    
                <CheckBox
                    android:id="@+id/visible_password"
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:background="@drawable/login_pager_visible_img"
                    android:button="@null"
                    android:layout_gravity="bottom"
                    android:visibility="gone" />
            </LinearLayout>
        </LinearLayout>
    
    
        <Button
            android:id="@+id/login"
            android:layout_width="150dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="10dp"
            android:text="登录"
            android:textColor="#fff"
            android:textSize="22sp" />

    布局文件写好之后,就开始编写代码了

    //我把这些控件都写成全局的了,所以在这就不写了
    
            image1 = (ImageView) view.findViewById(R.id.image1);//清空用户编辑框中的文字
            image2 = (ImageView) view.findViewById(R.id.image2);//清空密码编辑框中的文字
            visible = (CheckBox) view.findViewById(R.id.visible_password);//显示和隐藏密码的控件,用复选框方便判断是否为选中状态
            et_mima = (EditText) view.findViewById(R.id.et_mima);//编辑密码的控件
            et_user = (EditText) view.findViewById(R.id.et_user);//编辑用户名的控件
            tv_login = (Button) view.findViewById(R.id.login);//登录按钮的控件
    
    //代码处理部分 给编辑框设置文本改变监听的事件
    
    et_user.addTextChangedListener(new TextWatcher() {
    
                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
    
                }
    
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
    
                }
    
    //文本内容改变之后调用
    
                @Override
                public void afterTextChanged(Editable s) {
                    if (et_user.getText().toString().equals("")//判断是否为空
                            || et_mima.getText().toString().equals("")) {
                        tv_login.setEnabled(false);
                    } else {
                        tv_login.setEnabled(true);
                        tv_login.setBackgroundResource(R.drawable.btn_normal);//可以自己设置图片
                    }
                    if (et_user.getText().toString().equals("")) {
                        image1.setVisibility(View.GONE);
                    } else {
                        image1.setVisibility(View.VISIBLE);
                    }
                }
            });
            et_mima.addTextChangedListener(new TextWatcher() {
    
                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
    
                }
    
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
    
                }
    
                @Override
                public void afterTextChanged(Editable s) {
                    if (et_user.getText().toString().equals("")
                            || et_mima.getText().toString().equals("")) {
                        tv_login.setEnabled(false);
                    } else {
                        tv_login.setEnabled(true);
                        tv_login.setBackgroundResource(R.drawable.btn_normal);
    
                    }
                    if (et_mima.getText().toString().equals("")) {
                        image2.setVisibility(View.GONE);
                        visible.setVisibility(View.GONE);
                    } else {
                        image2.setVisibility(View.VISIBLE);
                        visible.setVisibility(View.VISIBLE);
                    }
                }
            });
    
    //清空文本内容的监听事件
            image1.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    et_user.setText("");
                }
            });
            image2.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    et_mima.setText("");
                }
            });
    
    //显示和隐藏密码的监听事件
    
    visible.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    
                @Override
                public void onCheckedChanged(CompoundButton buttonView,
                        boolean isChecked) {
                    if (isChecked) {
                        // 显示文本
                        et_mima.setTransformationMethod(HideReturnsTransformationMethod
                                .getInstance());
                        visible.setBackgroundResource(R.drawable.login_pager_invisible_img);//改变图片
                    } else {
                        et_mima.setTransformationMethod(PasswordTransformationMethod
                                .getInstance());
                        visible.setBackgroundResource(R.drawable.login_pager_visible_img);
                    }
                    // 切换后光标置于末尾
                    CharSequence charsequenence = et_mima.getText();
                    if (charsequenence instanceof Spannable) {
                        Spannable span = (Spannable) charsequenence;
                        Selection.setSelection(span, charsequenence.length());
                    }
                }
            });

    最后看一下效果


        

  • 相关阅读:
    Java线程专题 3:java内存模型
    Java线程专题 2:synchronized理解
    Java线程专题 1:线程创建
    设计模式七大原则
    JVM 运行时数据区
    css_selector定位,比xpath速度快,语法简洁
    xpath绝对定位和相对定位
    selenium多种定位
    操作浏览器基本元素(不定时更新)
    爬取网页图片并且下载(1)
  • 原文地址:https://www.cnblogs.com/daidai123/p/5526157.html
Copyright © 2020-2023  润新知