Android TransitionDrawbale禁用其他更改backggroun的方法

时间:2015-09-06 07:07:05

标签: android

我有代码通过TextWatcher更改EditText的背景,如下所示:

  etPin1.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        @Override
        public void afterTextChanged(Editable s) {

            switch (etPin1.length()){

                case 0:
                    etPin1.setBackgroundResource(R.drawable.zero);
                    break;
                case 1:
                    etPin1.setBackgroundResource(R.drawable.one);
                    break;
                case 2:
                    etPin1.setBackgroundResource(R.drawable.two);
                    break;
                case 3:
                    etPin1.setBackgroundResource(R.drawable.three);
                    break;
                case 4:
                    etPin1.setBackgroundResource(R.drawable.four);
                   // getPassowrdAgain(s.toString());
                    validateAndProceed(s.toString(),view);
                    break;

            }


        }
    });

但是当出现错误时,我需要通过在EditText中短时间显示红色背景并重置它来显示一些短动画。这是用于此目的的代码:

 Drawable backgrounds[] = new Drawable[2];
        Resources res = getResources();
        backgrounds[0] = res.getDrawable(R.drawable.zero);
        backgrounds[1] = res.getDrawable(R.drawable.error_pin);
        TransitionDrawable crossfader = new TransitionDrawable(backgrounds);

        etPin1.setBackgroundDrawable(crossfader);

        crossfader.startTransition(3000);

     // Reverse transition
        crossfader.reverseTransition(3000);

现在,当我尝试更改文本并期望背景中的更改不会发生时,交叉渐变器工作正常。我应该删除交叉渐变器,或者如果是这样,我该怎么做呢。 在此之后甚至没有调用textwatcher

0 个答案:

没有答案