高仿微信支付的密碼框

越來越多的電商應用的支付密碼仿照微信那樣的設置,早前項目中需要寫了一個。今天得空整理一下思路發表出來供大家參考。

首先從佈局說起,我將佈局分成一個linearlayout,平分成了6份,每一個裏邊是一個imageview,中間用textview分割開。然後再蓋上一個edittext,以供調出鍵盤,盛放輸入的內容,並監聽輸入的長度來控制顯示的圖片個數。大致思路就是這樣,下邊來看實現過程。

1、佈局:

<?xml version="1.0" encoding="utf-8"?>


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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章