2010-09-10 38 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 2010-09-10 20:27:28

+0

這可以做的不僅僅是顏色,你可以做在xml中定義的整個drawable,你只需要將樣式應用到drawable。 – schwiz 2010-09-10 21:12:33

+0

嗯。我似乎無法得到它的工作。我創建了一個名爲「bold」的新樣式,並創建了另一個名爲「button_test.xml」的XML文件,其中包含具有各種狀態(按下,關注,正常)的選擇器。我只是不知道如何在我的佈局中引用「button_test.xml」。 – user440308 2010-09-11 17:44:45

0

在回顧了我的一個button.xml文件之後,我發現評估順序(在文檔中提到)是這樣的,我的測試選擇了相同的drawable。糾正訂單使其工作。

除了不button2.xml的情況。我通過刪除除「drawable」和「state_ *」規範之外的所有方法來實現它。我在那裏有一個「textColor」 - 看起來像通過其他檢查的XML(就像上面的style =「..」一樣)默默地使選擇器無效。一個擴展驗證的好地方!

Schwiz有它的權利...文本使用你的資源目錄中的「顏色」子目錄中定義一個單獨的選擇:看ColorStateList