高仿微信支付的密码框

来源:互联网 发布:apache shiro 教程 编辑:程序博客网 时间:2024/05/01 15:03

越来越多的电商应用的支付密码仿照微信那样的设置,早前项目中需要写了一个。今天得空整理一下思路发表出来供大家参考。

首先从布局说起,我将布局分成一个linearlayout,平分成了6份,每一个里边是一个imageview,中间用textview分割开。然后再盖上一个edittext,以供调出键盘,盛放输入的内容,并监听输入的长度来控制显示的图片个数。大致思路就是这样,下边来看实现过程。

1、布局:



2、代码实现
代码实现很简单,就是监听edittext的输入来控制图片的显示隐藏
首先,获取到6个imageview和edittext。然后将6个imageview按照顺序装入一个容器,比如一个list。
然后写一个方法控制imageview的显示,很简单:
从0到输入的长度的位置为显示,从输入的长度的位置到最后为隐藏
private void setVisibility(List<ImageView> views, int length) {
        for (int i = 0; i < length; i++) {
            views.get(i).setVisibility(View.VISIBLE);
        }
        for (int i = length; i < views.size(); i++) {
            views.get(i).setVisibility(View.INVISIBLE);
        }
    }
有了上面那些,接下来就是对edittext添加监听
et.addTextChangedListener(this);
会重写三个方法,看着方法名字就知道变化前,变化时,变化后。我们只用在其中一个方法里边调用我们写的控制imageview显示隐藏的方法就行。有没有很简单
@Override
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

    }

    @Override
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

    }

    @Override
    public void afterTextChanged(Editable editable) {
        setVisibility(imgs,et.getText().toString().length());
    }

最后ps:1、需要注意的是edittext一定要放在上边,不然事件分发不到他,调不出键盘。
                 2、edittext一定要设置android:cursorVisible="false",隐藏光标,要不就能看到光标在移动
                 3、android:textColor="@android:color/transparent",将字体颜色设置为透明的

补上源码链接:http://download.csdn.net/detail/qq_33234564/9670299

1 0
原创粉丝点击