Страница 1 из 1

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

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

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

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

Добавлено: 26 апр 2012, 14:21
andev
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" />

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

Добавлено: 16 июл 2012, 21:41
Finch
andev писал(а): Во втором случае при использовании ImageButton можно создать xml с описанием всех трех состояний кнопки, и это будет обрабатываться автоматически
Button тоже это хавает :D, не знаю на счёт версий СДК

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

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