2010-11-24 173 views
1

我想知道,如何覆蓋橙色的Button標準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的drawable資源。

有什麼建議?

謝謝

穆爾

回答

4

一個工作的例子。這個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> 

另外,你可以定義Stroke(按鈕邊框)。

+0

這是解決方法,我現在就做。謝謝 – Tima 2010-11-24 13:46:38

1

Mur,您是否將這些資源(例如btn_default_normal)複製到drawables文件夾中?你必須得到這些資源(它們可以在platform/android-8/data/res /然後是不同的可繪製文件夾下的sdk文件夾中找到),然後將它們修改爲每個選擇器狀態所需的樣式。

+0

不,我沒有......我想,有一種方法可以訪問它們。我的意思是,你可以訪問一些系統佈局。 – Tima 2010-11-24 13:45:31