По умолчанию в Android выбран зеленый, показывающий прозрачный фон - PullRequest
1 голос
/ 16 июня 2011

Во-первых, я хочу сказать, что я пытаюсь (и в основном преуспеваю) использовать чисто XML для стилизации.

У меня есть представление списка, отображающее стандартное текстовое представление. 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 голосов
/ 09 апреля 2012

Ответ найден на https://stackoverflow.com/a/6201407/924939. Работает для меня.

Вы должны установить android: listSelector = "@ drawable / listcolor" в ListView.

Затем вы определяете рисованный объект с именем 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"
...