Как сделать прозрачную кнопку?

Я пытаюсь создать прозрачную кнопку. В деталях я установил кнопку фона с изображением, и я хотел бы изменить прозрачность кнопки, чтобы увидеть цвет макета фона.


person francedema    schedule 05.05.2013    source источник


Ответы (6)


вы можете использовать метод setAlpha() для своей кнопки.

Использованиеbutton.setAlpha(0.0)из вашего кода Java сделает вашу кнопку полностью прозрачной.

Или вы также можете использовать его в своем макете xml. Внутри вашего тега <Button /> используйте следующий атрибут:

android:alpha="0"
person shaonAshraf    schedule 05.05.2013
comment
но моя проблема в том, что атрибут backgroud просто установлен с путем моего изображения на моей кнопке .... Так я могу получить прозрачность? - person francedema; 05.05.2013
comment
нет, не работает ... Я установил android: alpha = 0 в моем макете xml, но кнопка исчезла, но если я нажму на его позицию, я смогу насладиться вашим щелчком ... поэтому я пытаюсь установить android: alpha = 50 или android :alpha=255 но ничего не происходит кнопка та же!!! - person francedema; 05.05.2013
comment
@francedema Значение альфа может быть установлено в диапазоне от 0 до 1. Где 0 - прозрачность 100%, где 1 - прозрачность 0%. Так что это работа, вам просто нужно использовать ее правильно. - person udenfox; 25.01.2016

Если вы используете

?android:attr/selectableItemBackground

у вас будет прозрачный фон с Ripple Effect согласно этой статье разработчиков Android

Вот пример

<Button
    android:id="@+id/test"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Change Password"
    android:background="?android:attr/selectableItemBackground"
    android:textSize="12sp"
    android:gravity="left|center"/>
person Jorge Casariego    schedule 25.09.2015
comment
или используйте style="@style/Widget.AppCompat.Button.Borderless" - person Roel; 11.03.2016

Вы можете использовать android:alpha="0.5", чтобы сделать кнопку полупрозрачной (значение должно быть числом с плавающей запятой, где 0.0 невидимо, а 1.0 непрозрачно), но имейте в виду, что это работает только с уровня API 11 (Android 3.0) и выше.

Другой вариант — изменить само фоновое изображение и сделать его прозрачным с помощью графической программы, такой как Gimp или Fireworks.

person Ridcully    schedule 05.05.2013
comment
Как вы обнаружили, что это работает только с API 11 и выше? - person Shreyans jain; 09.01.2016

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

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

или используйте #0000 четыре нуля в коде has.пусть это будет только 4, иначе он будет считаться черным.

надеюсь это поможет

person karan    schedule 05.05.2013
comment
Спасибо @Karan Mer за концепцию «четыре нуля»! - person CrazyLearner; 10.12.2013

Я знаю, что вопрос о кнопке, но легко получить «кнопку», то есть:

  • Прозрачный
  • Без теней и границ
  • С анимацией

используя TextView с атрибутами:

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

это выглядит так:

введите здесь описание изображения

Пример кода:

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="?attr/selectableItemBackground"
        android:clickable="true"
        android:onClick="onClickMethod"
        android:textStyle="bold"
        android:text="@string/transparent"/>
person Michał Baran    schedule 12.03.2017

Вместо того, чтобы использовать

Кнопка или кнопка изображения

Вы можете использовать

Изображение

и установите атрибут

андроид: onClick="действие"

person user2167145    schedule 05.05.2013