Android的默认选择绿色显示透明的背景视图

时间:2011-06-15 20:30:27

标签: android list coding-style themes drawable

首先,我想说我尝试(并且大部分都成功)使用纯XML进行样式化。

我有一个列表视图,显示标准的textview。 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>

接下来是与他们有关的风格,需要它。 *注意: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>

1 个答案:

答案 0 :(得分:0)

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

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

然后用透明纯色(或任何你需要的东西)定义一个名为 listcolor.xml 的drawable,这样就会出现列表项背景,默认的绿色或橙色会消失:

<?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"