Как получить нарисованный ресурс из логического ресурса - PullRequest
0 голосов
/ 17 января 2020

Есть ли способ получить нарисованный ресурс из логического ресурса?

Например:

bools.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool name="use_version_1_drawables">true</bool>
</resources>

my_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/my_drawable_version_1"/>
    <item android:drawable="@drawable/my_drawable_version_2"/>
</selector>

Есть ли конкретное c состояние, которое я должен быть используя, потому что, насколько я понимаю, все они связаны с конкретными c событиями (проверка, фокусировка и т. д. c). Возможно, мне не следует использовать селектор. Я просто хочу, чтобы у меня был один ресурс, который на самом деле связан с двумя другими, но я выберу один из них на основе моего bool.

1 Ответ

0 голосов
/ 17 января 2020

Вы рядом. Вы можете думать о селекторе как о выражении if / else. То, что вы сейчас упускаете, это ваше настоящее состояние. Вот пример:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="?attr/colorPrimaryDark" android:state_checked="true" />
    <item android:color="@color/gray" android:state_checked="false" />
</selector>

Если вы используете его с чем-то вроде флажка, просто установите этот селектор в качестве источника для рисования для флажка, и state_checked будет обновляться автоматически.

РЕДАКТИРОВАТЬ: проблема была немного более сложной и решена в комментариях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...