Как иметь прозрачный 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.
пожалуйста, помогите.
17 ответов
НЕ ИСПОЛЬЗУЙТЕ TRANSAPENT ИЛИ NULL LAYOUT потому что тогда кнопка (или общий вид) больше не будет выделяться при нажатии!!!
У меня была та же проблема и, наконец,Я нашел правильный атрибут из Android API для решения проблемы. Он может применяться к любому виду.
используйте это в спецификациях кнопки:
android:background="?android:selectableItemBackground"
установка фона в "@null"
сделает кнопку не иметь никакого эффекта при нажатии. Это будет лучший выбор.
style="?android:attr/borderlessButtonStyle"
позже я обнаружил, что с помощью
android:background="?android:attr/selectableItemBackground"
также является хорошим решением. И вы можете наследовать этот атрибут в своем собственном стиле.
Я считаю, что принятый ответ должен быть:
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 для создания любой вещи прозрачной
просто используйте этот код :
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" />
это программно установить цвет фона как прозрачный
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
работали.