2014-01-10 4 views
0

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

Я знаю, что это имеет какое-то отношение к стилю, но не знает, какой стиль использовать, ниже - мой xml-код для кнопки.

<Button 
    android:id="@+id/supplier" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="160dp" 
    android:layout_height="60dp" 
    android:layout_alignLeft="@id/two_player" 
    android:layout_alignTop="@id/two_player" 
    android:layout_marginTop="75dp" 
    android:background="@drawable/supplier" /> 
+0

Вы должны настроить кнопку с помощью 'Selector', чтобы достичь этого –

+0

. Примите мои анны, если его работа за вас благодарит .. –

ответ

3

Создать один buttonselector в вытяжке папку затем установить его кнопку фон

btnselector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true" 
     android:drawable="@drawable/btn_bg_clicked" /> <!-- pressed --> 
<item android:state_focused="true" 
     android:drawable="@drawable/btn_bg" /> <!-- focused --> 
<item android:drawable="@drawable/btn_bg" /> <!-- default --> 
</selector> 

Теперь установите это фона кнопки, как как

<Button 
android:id="@+id/supplier" 
style="?android:attr/buttonStyleSmall" 
android:layout_width="160dp" 
android:layout_height="60dp" 
android:layout_alignLeft="@id/two_player" 
android:layout_alignTop="@id/two_player" 
android:layout_marginTop="75dp" 
android:background="@drawable/btnselector" /> 

я Думаю, вы получили это ...

+0

вы имеете в виду, что у меня должно быть две протяжки той же кнопки? невозможно просто скрасить одно и то же изображение, если выбрано –

+0

эй @ СуяйКумар, это не обязательно должно быть привлекательным. Вы можете использовать только цветовой код или '' – Budius

1

Для этого вам необходимо использовать селектор.

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Active tab --> 
    <item 
    android:state_selected="true" 
    android:state_focused="false" 
    android:state_pressed="false" 
    android:drawable="@drawable/tab_bg_selected" /> 

    <!-- Inactive tab --> 
    <item 
    android:state_selected="false" 
    android:state_focused="false" 
    android:state_pressed="false" 
    android:drawable="@drawable/tab_bg_unselected" /> 

    <!-- Pressed tab --> 
    <item 
    android:state_pressed="true" 
    android:drawable="@drawable/tab_bg_pressed" /> 

    <!-- Selected tab (using d-pad) --> 
    <item 
    android:state_focused="true" 
    android:state_selected="true" 
    android:state_pressed="false" 
    android:drawable="@android:color/transparent" /> 
</selector> 

Предположив вышеуказанный файл называется bg_selector, вы установите его в качестве фона объекта, который вы хотите украсить, и в вашем случае «прессованная вкладка» является то, что вы ищете. В моей «tab_bg_pressed» вы бы определили еще одну возможность рисования, где вы задали бы фон как яркий эффект или что бы вы ни хотели.

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