Я хотел бы изменить фон для кнопки изображения. В основном изображение, которое я смотрю отлично на прозрачном фоне и немного паршиво, когда есть куча всех их с непрозрачным фоном.Измените только одно состояние (состояние по умолчанию) фона ImageButton
Это должно быть легко - просто изменить android:background
на кнопку прозрачного цвета (через растяжимой): click_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true"><color android:color="#FF008080" />
</item>
<item android:state_pressed="true"><color android:color="#FF008080" />
</item>
<item><color android:color="#00000000" />
</item>
</selector>
Тогда кнопка
<ImageButton
android:id="@+id/players"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:background="@drawable/click_background"
android:contentDescription="@string/players"
android:src="@drawable/speaker_tile" />
Проблема - это то, что я действительно хочу сохранить state_focussed
и state_pressed
версии фона (которые, как я полагаю, получены из темы). Я хотел бы, чтобы фон появлялся, когда кнопка нажата или выбрана (и отображается с тем же цветом/рисунком), которая будет использоваться темой, обычно при нажатии кнопки, будет полезна.
мне было интересно, если есть способ сделать одно из следующих действий, но до сих пор не удалось найти что-либо либо:
Определить селектор, который в некоторых, что наследуется от другого (аналогично к способу, которым тема может наследовать от другого).
Создайте совершенно новый селектор, но у него есть ссылка на XML: цвет/выталкиваемый текст
state_focussed
иstate_pressed
, используемый для кнопки изображения. Редактировать: похоже, этот параметр отсутствует. Я бы нуждался в атрибутах, но вы не можете ссылаться на них из доступных. See here
Я хотел бы сделать это в декларативных XML, а не Программной Java, если это возможно.
Спасибо, Любые подсказки, на которые элемент в каталоге, который я буду искать? Довольно много искать. –
Я думаю, что ImageButton использует тот же фон, что и обычная кнопка. Это также зависит от уровня платформы. В более новых версиях Android я думаю, что btn_default_ {state} _holo_dark.9.png и btn_default_ {state} _holo_light.9.png - это те, которые вы ищете, но я не уверен. Обычно мне приходится просматривать res/values / themes.xml и res/values / styles.xml в ресурсах платформы, чтобы выяснить, что именно я ищу – Karakuri
Кроме того, почему мой ответ был downvoted? – Karakuri