Переопределить onClick цвет / рисование - PullRequest
1 голос
/ 24 ноября 2010

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

Есть ли простой способ сделать это? Или я должен написать новый стиль в этом случае?

Я нашел в GIT, как выглядит com.android.internal.R.attr.buttonStyle. И я хотел бы просто скопировать и немного изменить этот стиль кнопок. Но если я делаю это таким образом, я получаю ошибки XML

<?xml version="1.0" encoding="utf-8"?>
<selector>
    <item 
        android:state_window_focused="false" 
        android:state_enabled="true"
        android:drawable="@drawable/btn_default_normal"/>
    <item 
        android:state_window_focused="false" 
        android:state_enabled="false"
        android:drawable="@drawable/btn_default_normal_disable" />
    <!-- Modified item -->
    <item 
        android:state_pressed="true" 
        android:drawable="@drawable/btn_default_selected" />
    <item 
        android:state_focused="true" android:state_enabled="true"
        android:drawable="@drawable/btn_default_selected" />
    <item 
        android:state_enabled="true" 
        android:drawable="@drawable/btn_default_normal" />
    <item 
        android:state_focused="true"
        android:drawable="@drawable/btn_default_normal_disable_focused" />
    <item 
        android:drawable="@drawable/btn_default_normal_disable" />
</selector>

Хорошо, наверное, я должен заполнить атрибут селектора xmlns: android. Если я заполню его "http://schemas.android.com/apk/res/android",, я получу другие ошибки. На этот раз, потому что ресурсы Android не могут быть найдены.

Есть предложения?!

Спасибо,

Mur

Ответы [ 2 ]

4 голосов
/ 24 ноября 2010

Один рабочий пример. Этот xml устанавливается как фон для рисования. Отрегулируйте цвета, как вам нравится.

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

    <item android:state_pressed="true" > 
        <shape> 
            <gradient 
                android:startColor="#FFAAAAAA"
                android:endColor="#FFAAAAAA"
                android:angle = "180" />
            <corners 
                android:radius="10dip" /> 
        </shape> 
    </item> 

    <item android:state_focused="true" > 
        <shape> 
            <gradient 
                android:startColor="#FF888888"
                android:endColor = "#FF888888"
                android:angle = "180"/> 
            <corners 
                android:radius="10dip" /> 
        </shape> 
    </item> 

    <item>         
        <shape>
            <gradient 
                android:startColor="#FFFFFFFF"
                android:endColor = "#FFFFFFFF"
                android:angle = "180" />
            <corners 
                android:radius="10dip" />
         </shape> 
    </item> 
</selector> 

Кроме того, вы можете определить обводку (границу кнопки).

1 голос
/ 24 ноября 2010

Мур, вы скопировали эти ресурсы (например, btn_default_normal) в папку Drawables?Вам нужно будет получить эти ресурсы (их можно найти в папке sdk по адресу platform / android-8 / data / res /, а затем в других папках для рисования), а затем изменить их так, чтобы они соответствовали стилю, необходимому для каждого состояния селектора.

...