Как иметь прозрачный ImageButton: Android



<ImageButton android:id="@+id/previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/media_skip_backward"
android:background="@drawable/transparent"></ImageButton>


Это то, что я пытался получить прозрачный ImageButton, чтобы разместить эти кнопки на SurfaceView. Но Eclipse, дает мне ошибку в проекте, как только я включаю прозрачную строку в xml.



пожалуйста, помогите.

786   17  

17 ответов:

попробуйте использовать null для фона ...

android:background="@null"

НЕ ИСПОЛЬЗУЙТЕ ТРАНСАПЕНТНЫЙ ИЛИ НУЛЕВОЙ МАКЕТ потому что тогда кнопка (или общий вид) больше не будет выделяться при нажатии!!!

У меня была та же проблема и, наконец,Я нашел правильный атрибут из Android API чтобы решить проблему. Он может применяться к любому виду.

использовать это в спецификации кнопки:

android:background="?android:selectableItemBackground"

вы также можете использовать прозрачный цвет:

android:background="@android:color/transparent"

установка фона в "@null" будет кнопку имеют никакого эффекта при нажатии. Это будет лучший выбор.

style="?android:attr/borderlessButtonStyle"

позже я обнаружил, что с помощью

android:background="?android:attr/selectableItemBackground"

также является хорошим решением. И вы можете наследовать этот атрибут в своем собственном стиле.

во время выполнения, вы можете использовать следующий код

btn.setBackgroundDrawable(null);

Я считаю, что принятый ответ должен быть: android:background="?attr/selectableItemBackground"

это то же самое, что и ответ @lory105, но он использует библиотеку поддержки для максимальной совместимости (android: эквивалент доступен только для API >= 11)

удалите эту строку :

android:background="@drawable/transparent">

и в вашем классе активности set

ImageButton btn = (ImageButton)findViewById(R.id.previous);
btn.setAlpha(100);

Вы можете установить Альфа-уровень от 0 до 255

o означает прозрачный и 255 означает непрозрачный.

лучший способ - использовать прозрачный цветовой код

android:background="#00000000"

используйте цветовой код #00000000 для того, чтобы сделать любую вещь прозрачной

просто используйте этот код .java file:

ImageButton btn = (ImageButton) findViewById(R.id.ImageButton01);
btn.setBackgroundColor(Color.TRANSPARENT);

установите фон ImageButton как @null в XML

<ImageButton android:id="@+id/previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/media_skip_backward"
android:background="@null"></ImageButton>

использовать "@null" . Это сработало для меня.

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:srcCompat="@drawable/bkash"
    android:id="@+id/bid1"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:background="@null" />

использовать ImageView... он имеет прозрачный фон по умолчанию...

это программно установить цвет фона как прозрачный

 ImageButton btn=(ImageButton)findViewById(R.id.ImageButton01);
 btn.setBackgroundColor(Color.TRANSPARENT);

программно Это можно сделать :

image_button.setAlpha(0f) // to make it full transparent
image_button.setAlpha(0.5f) // to make it half transparent
image_button.setAlpha(0.6f) // to make it (40%) transparent
image_button.setAlpha(1f) // to make it opaque

в вашем наборе XML Background атрибут любого цвета White(#FFFFFF) тени или Black(#000000) тени.если вы хотите прозрачность просто поставить 80 перед фактическим хэш-кодом.

#80000000   

используйте этот:

<ImageButton
 android:id="@+id/back"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:background="@null"
 android:padding="10dp"
 android:src="@drawable/backbtn" />
<ImageButton
    android:id="@+id/previous"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/media_skip_backward">
</ImageButton>

я использовал прозрачный png на ImageButton и ImageButton работали.

Comments

    Ничего не найдено.