2011-06-09 61 views
3

有沒有辦法讓選擇器使用@style選擇可以在佈局中使用的樣式元素?具體來說,我試圖改變基於state_pressed,state_focused和state_selected的顏色和陰影等TextView元素。我嘗試過多種選擇器,項目和樣式的XML安排,並沒有成功。風格選擇器可能嗎?

+0

要實現準確,你嘗試過什麼到目前爲止什麼? – 2011-06-09 11:01:08

+0

我希望文字陰影在state_pressed上改變 – miguel 2011-06-09 11:34:42

回答

6

你的問題是解決使用@drawable但不使用@style

創建一個XML文件包含一個按鈕...

<Button android:id="@+id/button1" 
     android:layout_centerHorizontal="true" android:layout_centerVertical="true" 
     android:layout_height="50dip" android:layout_width="150dip" 
     android:text="Click To Check Style" android:background="@drawable/ef_button"></Button> 

,並在水庫繪製文件夾中創建.. 創建一個ef_button .XML使用的TextView ... 設置一些TextView的屬性文件,您可以

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true"> 
     <!-- <color android:color="#800517" />--> 
     <shape> 
      <gradient android:startColor="#FFFF00" android:endColor="#AF7817" 
       android:angle="270" /> 
      <stroke android:width="5dp" android:color="#747170" /> 
      <corners android:radius="5dp" /> 
      <padding android:left="10dp" android:top="10dp" 
       android:right="10dp" android:bottom="10dp" /> 

     </shape> 
    </item> 
    <item android:state_focused="true"> 
     <!-- <color android:color="#00FFFF" />--> 
     <shape> 
      <gradient android:endColor="#F433FF" android:startColor="#F6358A" 
       android:angle="270" /> 
      <stroke android:width="5dp" android:color="#747170" /> 
      <corners android:radius="5dp" /> 
      <padding android:left="10dp" android:top="10dp" 
       android:right="10dp" android:bottom="10dp" /> 
     </shape> 

    </item> 
    <item> 
     <!-- <color android:color="#FFFFFF" /> --> 
     <shape> 
      <gradient android:endColor="#A0CFEC" android:startColor="#736AFF" 
       android:angle="270" /> 
      <stroke android:width="5dp" android:color="#747170" /> 
      <corners android:radius="5dp" /> 
      <padding android:left="10dp" android:top="10dp" 
       android:right="10dp" android:bottom="10dp" /> 
     </shape> 

    </item> 
</selector> 

同樣的事情...

TxtVw.setClickable(true); 
TxtVw.setFocusable(true); 

試試吧..