2015-03-11 13 views
0

Я установил тему для своей кнопки. Это код:Изменить тему кнопки при нажатии

<?xml version="1.0" encoding="utf-8"?> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 

      android:shape="rectangle"> 

    <solid android:color="@color/theme_blue_color"/> 
    <corners 
     android:radius="100dp"> 

     </corners> 
    <stroke android:width="1dp" 
     android:color="#05f"> 

     </stroke> 
    </shape> 

Тогда я хочу, чтобы это изображение менялось при нажатии. Поэтому я создаю другой файл (я назвал его обратным, и я положил его в папку с возможностью переноса). Затем в java я установил:

btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       btn(getResources().getColor(R.color.theme_blue_color)); 
       btn(R.drawable.reverse); 
      } 
     }); 

Я работаю исправно! Но я хочу, чтобы это произошло, как обычно, когда вы обычно нажимаете кнопку (меняйте цвет на нажатие, а затем сохраняйте его с первоначальным цветом). Как я могу это сделать с темой? Спасибо за ответ

ответ

0

вам нужен селектор:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true"> 
    <shape android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:shape="rectangle"> 
    <solid android:color="@android:color/red"/> 
    <corners 
     android:radius="100dp" /> 
    <stroke android:width="1dp" android:color="#05f" /> 

    </shape> 
    </item> 

    <item> 
    <shape android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:shape="rectangle"> 
    <solid android:color="@color/theme_blue_color"/> 
    <corners 
     android:radius="100dp" /> 
    <stroke android:width="1dp" android:color="#05f" /> 
    </shape> 
    </item> 
</selector> 

В этом примере у вас есть две различные формы. Первый имеет прессованное состояние с сплошным красным цветом. Используйте его как фон для вашей кнопки

+0

Хорошо спасибо! И как я могу изменить цвет переднего плана с помощью селектора? – pippo15

Смежные вопросы