2015-07-12 3 views
-4

Пожалуйста, предложите мне хорошую практику, чтобы изменить цвет фона кнопки onclick (в течение нескольких секунд). Я использую Android API 22.Как изменить стиль кнопки Android временно после нажатия?

Button before click

after click

+1

Что вы пытаетесь до сих пор? Пожалуйста, напишите любой связанный код. – cygery

+0

Прошу помочь узнать, какой стиль управления несет ответственность за такие вещи, поэтому я не пробовал код. Если теперь вы разместите в руководстве по стилю Android, где я могу найти ответ, пожалуйста, укажите мне. –

+0

Как насчет http://developer.android.com/reference/android/view/View.html#setBackgroundResource(int) –

ответ

1

У меня была аналогичная проблема несколько дней назад, так что не стесняйтесь использовать мой код.

Button myButton; //as a "global" variable so that it is also recognized in the onClick event. 

myButton = (Button) findViewById(R.id.b) 
myButton.setBackgroundColor(Color.BLACK); //set the color to black 
myButton.setOnClickListener(new View.OnClickListener() {   
    @Override 
    public void onClick(View v) { 
     myButton.setBackgroundColor(Color.RED); //set the color to red 
     // Delay of 2 seconds (200 ms) before changing back the color to black 
     final Handler handler = new Handler(); 
     handler.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       myButton.setBackgroundColor(Color.BLACK); //set the color to black 
      } 
     }, 200); 
    } 
} 

Я не знаю, если это считается хорошей практикой, хотя ...

Иметь хороший день!

+0

Спасибо, это работает –

0

Я пришел к этому решению для Android API 21:

@Override 
public void onClick(final View view) { 
    final int redColor = 0xFFFF0000; 
    view.getBackground().setColorFilter(redColor, PorterDuff.Mode.MULTIPLY); 
    final Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      view.getBackground().clearColorFilter(); 
     } 
    }, 700); 
} 
Смежные вопросы