Mam listę stan rozciągliwej, i chcę, aby uzyskać konkretny rozciągliwej z listy stan rozciągliwej:Szczegółowe rozciągliwej z listy państwowej rozciągliwej
<?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>
mam wybrać prawidłowy stan rozciągliwej dla każdego klawisza, coś podobnego to:
if (keyIsNumbers) {
if (KPlusInputMethodService.sNumbersState == 2) {
drawableState = mDrawableStatesProvider.KEY_STATE_TOPNAV_CHECKED;
}
}
teraz stany są zdefiniowane następująco:
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};
teraz moje pytanie brzmi: jak wyodrębnić poprawne losowanie dla każdego stanu? Muszę uzyskać dopełnienie 9-strunowe w losowaniu, ponieważ jeśli stan ma inne wypełnienie na 9-pozycyjnym, otrzyma dopełnienie tylko dla górnego losowania, a ja chcę ręcznie ustawić dopełnienie dla każdego klawisza (drawable.getPadding (rect)) .
cię nie można uzyskać rysunków, które tworzą StateListDrawable – pskink
Myślałem, że mogę uzyskać je przy użyciu identyfikatora atrybutu z stateDrawable [0] na pewno nie jest możliwe? :( – Tazz
do czego potrzebujesz id? również nie rozumiem, dlaczego potrzebujesz dostępu do danego Drawable ... – pskink