Флажок 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
с любым цветом