2010-09-10 2 views
5

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

<style name="test"> 
    <item name="android:shadowColor">#FFFFFF</item> 
    <item name="android:shadowRadius">1</item> 
    <item name="android:shadowDx">1</item> 
    <item name="android:shadowDy">1</item> 
</style> 

Это относится белая тень на текст кнопки в нормальном состоянии. Мне просто интересно, знает ли кто-нибудь, есть ли способ удалить эту тень, когда кнопка нажата. Другими словами, существует ли способ применить другой стиль, когда кнопка находится в другом (нажатом) состоянии?

Заранее благодарен!

редактировать

bold.xml:

<resources> 
    <style name="bold_text"> 
     <item name="android:textStyle">bold</item> 
    </style> 
</resources> 

button.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/test_pressed" 
       style="@style/bold_text" 
      android:state_pressed="true"/> 
    <item android:drawable="@drawable/test_focused" 
      android:state_focused="true"/> 
    <item android:drawable="@drawable/test_normal"/> 
</selector> 

мой макет:

<Button 
     ... 
     android:background="@drawable/button"/> 

ответ

2
+0

Этот метод не работает ... ColorStateList позволяет мне изменять цвет текста в разных состояниях. Я хотел изменить стиль (например, увеличивать размер текста при нажатии или удалять тень при нажатии) для разных состояний. – user440308

+0

Это может сделать больше, чем просто цвета, вы можете делать целые рисунки, определенные в xml, вы просто применяете стиль к вашему рисунку. – schwiz

+0

Хм. Кажется, я не могу заставить его работать. Я создал новый стиль под названием «полужирный» и создал другой XML-файл с именем «button_test.xml», содержащий селектор с различными состояниями (нажатый, сфокусированный, обычный). Я просто не уверен, как ссылаться на «button_test.xml» в моем макете. – user440308

0

После обзора одного из моих файлов button.xml, я обнаружил, что порядок оценки (который отмечен в документах ..) был таким, что мое тестирование выбрало тот же drawable. Коррекция заказа заставила его работать.

За исключением случаев с кнопкой2.xml. Я сделал это, удалив все, кроме спецификаций «drawable» и «state_ *». У меня был «textColor», который выглядит как XML, который проходит мимо других проверок (как и стиль = «..» выше) бесшумно отменяет селектор. Хорошее место для продления проверки!

Schwiz имеет это право ... для текста используйте отдельный селектор, определенный в подкаталоге «color» вашего каталога ресурсов: см. ColorStateList.

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