У меня есть список состояний вытяжки, и я хочу, чтобы получить конкретную вытяжку из государственного списка Drawable:Получить конкретную вытяжку из государственного списка вытяжки
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:kplus="http://schemas.android.com/apk/res-auto">
<item kplus:key_type_space_alt="true" android:state_pressed="true" android:drawable="@drawable/space_1_pressed" />
<item kplus:key_type_space_alt="true" android:drawable="@drawable/space_1_normal" />
<!-- TopNav keys. -->
<item kplus:key_type_topnav="true" android:state_pressed="true" android:drawable="@drawable/tab_down" />
<item kplus:key_type_topnav="true" android:state_selected="true" android:drawable="@drawable/tab_down" />
<item kplus:key_type_topnav="true" android:drawable="@drawable/tab_normal" />
<!-- TopRow keys. -->
<item kplus:key_type_toprow="true" android:state_pressed="true" android:drawable="@drawable/numeric_presseed" />
<item kplus:key_type_toprow="true" android:drawable="@drawable/numeric_normal" />
</selector>
Я выбираю правильный Drawable состояния для каждого ключа, что-то вроде это:
if (keyIsNumbers) {
if (KPlusInputMethodService.sNumbersState == 2) {
drawableState = mDrawableStatesProvider.KEY_STATE_TOPNAV_CHECKED;
}
}
Теперь состояния определяются следующим образом:
KEY_STATE_TOPNAV_NORMAL = new int[] {keyTypeTopNavAttrId};
KEY_STATE_TOPNAV_PRESSED = new int[] {keyTypeTopNavAttrId, android.R.attr.state_pressed};
KEY_STATE_TOPNAV_CHECKED = new int[] {keyTypeTopNavAttrId, android.R.attr.state_selected};
Теперь мой вопрос как извлечь правильное значение для каждого состояния? Мне нужно получить 9patch padding для drawable, потому что если у государства есть различное дополнение на 9patch, оно получит дополнение только для верхнего drawable, и я хочу настроить заполнение вручную для каждой клавиши (drawable.getPadding (rect)), ,
вас не может получить Drawables, которые формируют StateListDrawable – pskink
я думал, что могу получить их с помощью идентификатора атрибута из stateDrawable [0] u уверен, что это невозможно? :( – Tazz
для чего нужен идентификатор? также я не понимаю, зачем вам нужен конкретный Drawable ... – pskink