Я добился этого, чтобы поддерживать состояние кнопки с помощью XML-компонента селектора.См. Фрагмент кода, например.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Non focused states
-->
<item android:state_focused="false" android:state_selected="false"
android:state_pressed="false" android:drawable="@drawable/back_arrow_normal" />
<item android:state_focused="false" android:state_selected="true"
android:state_pressed="false" android:drawable="@drawable/back_arrow_hover" />
<!-- Focused states
-->
<item android:state_focused="true" android:state_selected="false"
android:state_pressed="false" android:drawable="@drawable/back_arrow_hover" />
<item android:state_focused="true" android:state_selected="true"
android:state_pressed="false" android:drawable="@drawable/back_arrow_hover" />
<!-- Pressed
-->
<item android:state_pressed="true" android:drawable="@drawable/back_arrow_hover" />
</selector>
Используя эту идею, мы должны иметь как минимум два изображения.Если у меня есть десять кнопок в проекте, тогда у меня должно быть двадцать изображений в нарисованном ресурсе.Чтобы обеспечить поддержку приложения в нескольких плотностях / размерах экрана, мне нужно 60 (20X3) изображений.
У меня есть два вида мыслей, но я не знаю, как их реализовать.Это:
- мы должны определить метод вместо файла селектора.
- у нас должно быть одно изображение, и нам нужно изменить альфа-значение, как iPhone.
Есть ли другие великие идеи, которые больше всего нужны?Потому что это увеличивает размер приложения.
Пожалуйста, выражайте свои мысли и идеи.