2011-06-15 46 views
1

首先,我想说我试图(而且大多成功)使用纯粹的XML为造型目的。Android的默认选择绿色通过透明的背景视图显示

我是一个列表视图,显示标准的文本视图。 Everyhting正在工作,包括我定制的xml定义的drawables。

除了我清晰的“按钮”变成绿色透明的地方,就像android 2.2的默认设置一样。有什么方法可以覆盖这个?

下面附加的是按钮的可绘制代码。顶部颜色渐变是坚实的,底部是100%透明的。

<?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="@color/butttop" 
       android:endColor="@color/buttbot" 
       android:angle="270" 
       android:dither="true" 
       /> 
      <!-- <stroke 
       android:width="1dp" 
       android:color="@color/stroke2" />--> 
      <corners 
       android:radius="20dp" /> 
      <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/focustop" 
       android:startColor="@color/focusbot" 
       android:angle="270" /> 
      <!--<stroke 
       android:width="1dp" 
       android:color="@color/stroke1" />--> 
      <corners 
       android:radius="20dp" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
     </shape> 
    </item> 

    <item>   
     <shape> 
      <gradient 
       android:endColor="@color/butttop" 
       android:startColor="@color/buttbot" 
       android:angle="90" /> 
      <!--<stroke 
       android:width="1dp" 
       android:color="@color/stroke1" />--> 
      <corners 
       android:radius="20dp" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
     </shape> 
    </item> 
</selector> 

接下来是与他们有关的风格,incase其需要。 *注意:menubutt是上述文件的名称。

<style name="DrawerItems1"> 
    <item name="android:textSize">16px</item>  
    <item name="android:textColor">#FFFFFF</item> 
    <item name="android:shadowColor">#000000</item> 
    <item name="android:shadowDx">1</item> 
    <item name="android:shadowDy">1</item> 
    <item name="android:shadowRadius">3</item> 
    <item name="android:typeface">sans</item> 
    <item name="android:textStyle">bold</item> 
    <item name="android:background">@drawable/menubutt</item> 
</style> 

回答

0

https://stackoverflow.com/a/6201407/924939处找到答案。适用于我。

你必须在ListView中设置android:listSelector =“@ drawable/listcolor”

然后定义一个透明纯色命名listcolor.xml被拉伸(或任何你需要的),使列表项的背景就会出现,默认绿色或橙色的颜色就会消失:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#00000000"/> 
</shape> 

这也可能必须与ListView中的以下代码混合使用:

android:cacheColorHint="@color/transparent" 
android:background="@color/transparent"