У меня есть кнопка, как в следующем:
<Button
android:text="Submit"
android:id="@+id/Button01"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</Button>
В моем onCreate()
случае я звоню Button01 так:
setContentView(R.layout.main);
View Button01 = this.findViewById(R.id.Button01);
Button01.setOnClickListener(this);
В приложении есть фон, и я хочу установить непрозрачность для этой кнопки отправки. Как я могу установить непрозрачность для этого представления? Это то, что я могу установить на стороне Java, или я могу установить в файле main.xml?
На стороне Java я пытался Button01.mutate().SetAlpha(100)
, но это дало мне ошибку.
Я поражен тем , все остальные гораздо более сложных ответов.
XML
Вы можете очень просто определить альфа в определении цвета кнопки (или любого другого представления) в вашем xml:
В приведенном выше примере цвет будет частично прозрачным красным.
При определении цвета представления формат может быть либо,
#RRGGBB
либо#AARRGGBB
, гдеAA
это шестнадцатеричное альфа-значение.FF
будет полностью непрозрачным и00
будет полностью прозрачным.динамично
Если вам нужно динамически изменить прозрачность в вашем коде, используйте
Где INT варьируется от
0
(полностью прозрачный) до255
(полностью непрозрачный).источник
android:color
атрибута.background
непрозрачность, а неview
непрозрачность. Не эквивалентен во многих случаях использованияЯ думаю, вы, возможно, уже нашли ответ, но если нет (и для других разработчиков), вы можете сделать это так:
Здесь я установил непрозрачность на 45. Вы можете установить ее от 0 (полностью прозрачный) до 255 (полностью непрозрачный).
источник
Я бы посоветовал вам создать собственный цвет ARGB в вашем файле colors.xml, например:
затем установите цвет фона кнопки:
Еще одна вещь, которую вы можете сделать, если вы хотите поиграть с формой кнопки, это создать ресурс рисования Shape, в котором вы устанавливаете свойства, как должна выглядеть кнопка:
файл: res / drawable / rounded_corner_box.xml
Затем используйте это как фон кнопки:
источник
В соответствии с представлением Android-документов альфа-версия имеет значение от 0 до 1. Поэтому, чтобы установить его, используйте что-то вроде этого:
источник
Гораздо проще из вышесказанного. Для кнопки есть альфа-атрибут по умолчанию
Диапазон между 0 для полной прозрачности и 1 для полной непрозрачности.
источник
Это то, что я знаю ... Я думаю, что создание пользовательского класса кнопки - лучшая идея
Уровень API 11
Недавно я столкнулся с этим атрибутом android: alpha xml, который принимает значение от 0 до 1. Соответствующий метод - setAlpha (float) .
источник
@android:color/transparent
качестве фона действительно сделает вид полностью прозрачным.@android:alpha
- часть , как представляется , добавление к нему.Хотя
btnMybutton.getBackground().setAlpha(45);
это хорошая идея, он просто применяет альфу к фону, а не ко всему виду.Если вы хотите применить альфа для просмотра использования
btnMybutton.setAlpha(0.30f);
вместо. Это применить непрозрачность для просмотра. Он принимает значение от 0 до 1.Док говорит:
источник
Я столкнулся с этой проблемой с ICS / JB, потому что кнопки по умолчанию для темы Holo состоят из изображений, которые немного прозрачны. Для фона это особенно заметно.
Пряники против ICS +:
Копировать все нарисованные состояния и изображения для каждого разрешения и делать прозрачные изображения сплошными, поэтому я выбрал более грязное решение: обернуть кнопку в держатель на белом фоне. Вот грубая отрисовка XML (ButtonHolder), которая делает именно это:
Ваш XML-файл
ButtonHolder.xml
styles.xml
Тем не менее, это приводит к появлению белой границы, потому что изображения кнопки Holo включают поля для учета нажатого пространства:
Таким образом, решение состоит в том, чтобы дать белому фону поле (4dp сработало для меня) и закругленные углы (2dp), чтобы полностью скрыть белый цвет, но сделать кнопку сплошной:
ButtonHolder.xml
Конечный результат выглядит так:
Вы должны выбрать этот стиль для v14 +, а также настроить или исключить его для Gingerbread / Honeycomb, потому что размеры их собственных кнопок отличаются от ICS и JB (например, этот точный стиль за кнопкой Gingerbread приводит к появлению небольшого белого цвета под кнопкой).
источник
Для просмотра вы можете установить прозрачность следующим образом.
Свойство
view.setAlpha(int)
не рекомендуется для версии API больше 11. Отныне используется свойство like.setAlpha(0.5f)
.источник
Для API <11 для textView color я сделал следующее:
Немного громоздко, но эй, это работает :-)
источник
Я знаю, что на это уже есть куча ответов, но я обнаружил, что для кнопок проще всего создать собственные селекторы .xml и установить их на фоне указанной кнопки. Таким образом, вы также можете изменить его состояние при нажатии или включении и так далее. Вот быстрый фрагмент того, который я использую. Если вы хотите добавить прозрачность к любому из цветов, добавьте начальное шестнадцатеричное значение (#XXcccccc). (XX == "Альфа цвета")
источник