Очистка фона в ImageButton

Интерфейс, диалоги, темы, стили, меню
Ответить
Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Очистка фона в ImageButton

Сообщение andev » 26 апр 2012, 14:03

Часто бывает необходимо поставить на кнопку вместо текста изображение.
Здесь как минимум два пути:
1) использовать Button
2) использовать ImageButton
В первом случае все просто и топорно, кладем нужное изображение в background (если нужен 9-patch) и вуаля, все работает без глюков. Проблема в том, что не будет интерактивности, т.е. нажатий и фокуса. Писать вручную - лишняя работа
Во втором случае при использовании ImageButton можно создать xml с описанием всех трех состояний кнопки, и это будет обрабатываться автоматически (подробнее читай http://developer.android.com/reference/ ... utton.html). Проблема в том, что по краям кнопки остается "рамка" стандартного изображения кнопки, а ваше изображение помещается в центр. Вот так:
Изображение
Много где для избавления от этого советуют для ImageButton поставить background в транспарент, т.е. #00000000, но проявляется глюк: если фон не черный, то фоновое изображение которое размещается ЗА кнопкой дублируется и помещается на фон кнопки, подстраиваясь под размер. Причем при верстке в визуальном окне в эклипсе все нормально, но на девайсе не айс. Иллюстрация:
Изображение

Выход нашел в установке в background ImageView изображения 1*1 пиксель, прозрачной.
PS возможно, есть способ обойтись и без этого, буду рад если вы его озвучите.
Последний раз редактировалось andev 26 апр 2012, 14:34, всего редактировалось 2 раза.

Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Re: Очистка фона в ImageButton

Сообщение andev » 26 апр 2012, 14:21

Save the XML file in your project res/drawable/ folder and then reference it as a drawable for the source of your ImageButton (in the android:src attribute). Android will automatically change the image based on the state of the button and the corresponding images defined in the XML.
Положил в background - скушало.

Код: Выделить всё

<ImageButton
        android:id="@+id/btn_buy_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/btn_3_x"
        android:layout_weight="1" />

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: Очистка фона в ImageButton

Сообщение Finch » 16 июл 2012, 21:41

andev писал(а): Во втором случае при использовании ImageButton можно создать xml с описанием всех трех состояний кнопки, и это будет обрабатываться автоматически
Button тоже это хавает :D, не знаю на счёт версий СДК
CEO of a company R.id.team

Makute
Сообщения: 42
Зарегистрирован: 18 окт 2012, 15:16

Re: Очистка фона в ImageButton

Сообщение Makute » 18 окт 2012, 15:53

А установить background у ImageButton в @null религия не позволяет?
Кроме картинки не отображается ничего, без костылей всяких.
Или я вас не понял?

Ответить