Как заставить кнопку показать, что она нажата (путем установки его, идут вниз/некоторый изменение) для кнопок с помощью пользовательского фонового изображения в Android. Я не хочу включать больше изображений и устанавливать отличающийся, один к различным состояниям как показанный в Google привет просматривает пример.Спасибо.
С помощью метода ColorFilter можно сделать только один файл изображения. Однако ColorFilter рассчитывает работать с ImageView, а не с кнопками, поэтому вам нужно преобразовать свои кнопки в ImageView. Это не проблема, если вы все равно используете изображения в качестве кнопок, но еще больше раздражает, если у вас есть текст ... В любом случае, если вы найдете способ обойти проблему с текстом, вот код, который нужно использовать:
ImageView button = (ImageView) findViewById(R.id.button);
button.setColorFilter(0xFFFF0000, PorterDuff.Mode.MULTIPLY);
При этом к кнопке применяется красный оверлей (цветовой код - это шестнадцатеричный код для полностью непрозрачного красного цвета - первые две цифры обозначают прозрачность, затем RR GG BB.).
Вы можете сделать ваши ImageView похожими на обычные кнопки, скопировав btn_default_normal.9.png из папки sdkfolder / platform / (версия android / data / res / drawable в ваш собственный проект. Затем в ImageView используйте android: background = "@ drawable / btn_normal_default"
и android : src = "..."
, чтобы установить изображение внутри кнопки.
для этого вам нужно использовать два изображения.
, затем создайте ресурс xml в папке с возможностью переноса
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false"
android:drawable="@drawable/button_normal" />
<item android:state_pressed="true"
android:drawable="@drawable/button_pressed" />
</selector>
, затем установите этот файл в качестве фона для просмотра изображения. здесь мы используем просмотр изображения как кнопку. не забудьте включить эти две кнопки в папку с возможностью переноса. это оно.