2010-12-03 49 views
0

請嘗試下面的代碼並引導我,我的問題是我沒有得到TextView的「按下」狀態,是否可以實現按下狀態的TextView?我如何?Android的問題 - TextView背景顏色在不同狀態下的變化

我已經成功使用下面的代碼爲Button,但沒有成功的TextView。

請指引我

我的按鈕及TextView的代碼:

<Button 
    android:id="@+id/Button01" 
    android:layout_width="fill_parent" 
    android:layout_height="50dp" 
    android:background="@drawable/button_state" 
    android:padding="20dp"> 
</Button> 

<TextView 
    android:text="Demo of Color on state change" 
    android:id="@+id/TextView01" 
    android:layout_width="fill_parent" 
    android:layout_height="50dp" 
    android:background="@drawable/button_state" 
    android:focusable="true"> 
</TextView> 

button_state.xml文件(我已經將其存儲在繪製文件夾):

<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_pressed="true"> 
     <shape> 
      <gradient 
       android:startColor="@color/yellow1" 
       android:endColor="@color/yellow2" 
       android:angle="270" /> 
      <stroke 
       android:width="3dp" 
       android:color="@color/grey" /> 
      <corners 
       android:radius="3dp" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
     </shape> 
    </item> 

    <item android:state_focused="true" > 
     <shape> 
      <gradient 
       android:endColor="@color/orange1" 
       android:startColor="@color/orange2" 
       android:angle="270" /> 
      <stroke 
       android:width="3dp" 
       android:color="@color/grey" /> 
      <corners 
       android:radius="3dp" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
     </shape> 
    </item> 

    <item>   
     <shape> 
      <gradient 
       android:endColor="@color/blue1" 
       android:startColor="@color/blue2" 
       android:angle="270" /> 
      <stroke 
       android:width="3dp" 
       android:color="@color/grey" /> 
      <corners 
       android:radius="3dp" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
     </shape> 
    </item> 
</selector> 

color.xml文件:

<resources> 
<color name="yellow1">#FFFF99</color> 
<color name="yellow2">#FFCC00</color> 
<color name="orange1">#FF9966</color> 
<color name="orange2">#FF6600</color> 
<color name="blue1">#99CCFF</color> 
<color name="blue2">#0033CC</color> 
<color name="grey">#736F6E</color> 
</resources> 
+1

我已經問過與同一主題的SO問題,但沒有一個有用的答案:http://stackoverflow.com/questions/4336218/android-textview-change-color-on-changing-of-state – 2010-12-03 12:15:06

回答

4

AFAIK,TextView不支持按下狀態。

只需使用Button。由於您正在更改背景,因此您可以根據自己的需要設計外觀,包括看起來像純色TextView

+0

你如何設計Button看起來像TextView?我想通過