Флажок Android плохо виден на черном фоне.

Я хочу сделать список флажков с белым текстом на черном фоне. Мы используем следующий код:

CheckBox chkAdditionalPack = new CheckBox(MainActivity.this);
chkAdditionalPack.setTag(j);
chkAdditionalPack.setText(offerPackageListForAddl.get(j).getOfferPackageName().toString());
chkAdditionalPack.setTextColor(Color.WHITE);

Это дает вид как ниже:флажок в черном фоне

Проблема в том, что теперь ящики с флажками не четко видны. Как я могу сделать это ясно видимым, не затрагивая другие части?

4 ответа

Решение

Попробуйте приведенный ниже код xml из решения

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
        android:state_checked="true" 
        android:drawable="@drawable/cbchk_blue"
        android:state_focused="false" >
    </item>

    <item
        android:state_checked="true" 
        android:drawable="@drawable/cbchk_blue"
        android:state_focused="true" >
    </item>

    <item
        android:state_checked="false" 
        android:drawable="@drawable/cbunchk_blue"
        android:state_focused="false" >
    </item>

    <item
        android:state_checked="false" 
        android:drawable="@drawable/cbunchk_blue"
        android:state_focused="true" >
    </item>
</selector>

Если вы используете android-studio, установите флажок и в свойствах установите значение свойства buttonTint на любой цвет, который вы хотите использовать в редакторе. Или, если вы предпочитаете решение XML, используйте

android:buttonTint="@color/white"

Примечание. Предполагается, что белый цвет определен.

Один действительно простой способ сделать это, в xml для флажка, просто установить android:background Переменный цвет, который вы хотите.

Вместо того, чтобы создавать текст и флажок вместе, как это, просто создайте пользовательский XML-файл макета элемента списка.

например, custom_list_item.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#000000"

        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#FFFFFF"
        />


</LinearLayout>

Просто используйте это:

android:buttonTint="#FFFFFF"

** replace #FFFFFF с любым цветом

Другие вопросы по тегам