Android ImageButton получает серый фон - PullRequest
3 голосов
/ 03 марта 2011

У меня есть кнопка с хорошим селектором фона. хорошо. вместо текста в кнопке я хочу изображение. Я попытался просто изменить его на ImageButton с атрибутом src. когда я делаю это, похоже, что серый фон накладывается позади моего селектора, позади изображения src.

когда я возвращаюсь к обычной кнопке, проблема исчезает. то, что я хочу, это просто мой фоновый селектор, плюс изображение src (вместо текста кнопки).

есть идеи?

Ответы [ 4 ]

10 голосов
/ 05 мая 2011

У кнопки ImageButton должен быть установлен android: фон.

<ImageButton 
    android:id="@+id/ibArrow"
    android:layout_width="35px"
    android:layout_height="50px"
    android:src="@drawable/arrow"
    android:background="@drawable/backgroundstate" />   

И backgroundstate:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_selected="true" android:drawable="@color/transparent" />
        <item android:state_pressed="true" android:drawable="@color/transparent" />
    <item android:drawable="@color/transparent" />
   </selector>
2 голосов
/ 25 мая 2012

То, что сказал @kdumitru, но с правильной таблицей стилей XML:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:drawable="@android:color/transparent" />
    <item android:state_pressed="true" android:drawable="@android:color/transparent" />
    <item android:drawable="@android:color/transparent" />
</selector>
0 голосов
/ 03 марта 2011

Можете ли вы опубликовать скриншот того, что вы видите?Трудно точно сказать, что вы говорите, но, похоже, ваше изображение src может не иметь правильного альфа-канала.Это PNG с прозрачностью?Убедитесь, что ваше изображение src является правильно сохраненным прозрачным изображением PNG.

0 голосов
/ 03 марта 2011

Я бы сказал, что вы не правильно ссылаетесь на изображение в R.drawable, может быть, вам нужно поместить изображение в Drawable?ImageView работает.

...