2011-06-09 62 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); 

试试吧..