Перейти к содержимому

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

  • автор:

Полупрозрачная панель для ImageView

Для экономии места, когда требуется для ImageView сделать сопровождающий текст, можно наложить текст поверх ImageView, при этом сам TextView сделать полупрозрачным. Здесь нам поможет разметка RelativeLayout, позволяющая наложить два компонента друг на друга:

Как видно на скриншоте, текст лёг поверх картинки, немного захватив задние лапки и пушистый хвост.

А как поступить с более сложным случаем, когда нам нужно использовать два TextView поверх ImageView. В этом случае поместим текстовые метки в разметку LinearLayout, которую свою очередь сделаем полупрозрачной и поместим её уже поверх ImageView, как это делали в первом примере.

Данный приём можно использовать не только для отдельных ImageView, но и для адаптеров к GridView, когда у каждой ячейки сеточной компоновки требуется разместить ImageView и подпись к нему.

Прозрачная кнопка на Android

Помогите сделать кнопку прозрачной как указано на рис. введите сюда описание изображения введите сюда описание изображения

Отслеживать
28.6k 21 21 золотой знак 59 59 серебряных знаков 141 141 бронзовый знак
задан 16 апр 2018 в 18:06
Captain Mountain Captain Mountain
407 6 6 серебряных знаков 22 22 бронзовых знака
Просто drawable в backrground установите
16 апр 2018 в 18:15

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Создайте новый xml файл в res/drawable и после добавьте свойство background c именем созданного файла.

gradient.xml

layout.xml

Отслеживать
ответ дан 16 апр 2018 в 19:35
Timur Mukhortov Timur Mukhortov
2,059 9 9 серебряных знаков 24 24 бронзовых знака
Обновил ответ. Сделал кнопку более похожей на ту что вы показали.
16 апр 2018 в 19:47

  • java
  • android
  • xml
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как сделать кнопки произвольной формы на Android?

5e5cc107cda41314723116.png

Добрый день, делаю первые шаги на андроиде.
Подскажите как проще создать кнопки не стандартной формы. На рисунке 5 кнопок. Есть ли возможность накладывать маску на прямоугольную кнопку? Либо направьте в ту сторону куда копать, спасибо большое.

  • Вопрос задан более трёх лет назад
  • 982 просмотра

Комментировать
Решения вопроса 1
Юрий @YuryBorodkin
Android dev

Если ты хочешь иметь какие-то сегменты с разными обработчиками на клик, ну или на вид одна кнопка, а по факту там пять зон с разными обработчиками, это делается через viewgroup, т.е кнопки накладываются друга на друга или как-то еще сочетаются.
В твоем случаем можно сделать что-то вроде
код лэйаута, тебе нужно что в FrameLayout

rect_black_stoke_40dp

Потом ставишь обработчики на id частей кнопки и готово. Можно один на все части (ну или сразу на весь FrameLayout) тогда будет на тап по любой части одна реакции. Либо, на каждый сегмент свой обработчик.

Ответ написан более трёх лет назад
Антон Мисягин @sunnmas Автор вопроса

Спасибо за отклик. Правильно ли я понимаю, что кнопки в итоге будут наложены друг на друга? Легко ли получится разрулить нажатие на «правильную» кнопку при клике в области кривизны вне круглой кнопки? Есть ли какие нибудь примеры на данную тему?

Юрий @YuryBorodkin

Смотри, в андроид вью имеет форму прямоугольника. Кнопка, если упрощенно, регистрирует нажатие по всей своей поверхности.
Если ты хочешь иметь какие-то сегменты с разными обработчиками на клик, ну или на вид одна кнопка, а по факту там пять зон с разными обработчиками, это делается через viewgroup, т.е кнопки накладываются друга на друга или как-то еще сочетаются.
В твоем случаем можно сделать что-то вроде
код лэйата, тебе нужно что в FrameLayout

rect_black_stoke_40dp

Потом ставишь обработчики на id частей кнопки и готово. Можно один на все части (ну или сразу на весь FrameLayout) тогда будет на тап по любой части одна реакции. Либо, на каждый сегмент свой обработчик.

Делаем красивые кнопки в Android

Android Tools

Одним из важных компонентов пользовательского интерфейса в приложения является кнопка. Она используется для выполнения различных действий пользователя.

В этой статье мы приведём примеры использования и стилизации кнопки.

Добавляем кнопку на разметку

Пользовательский интерфейс приложения определён в XML-файле с разметкой. Вы можете добавить элемент Button и установить атрибуты вручную. Или вы можете, воспользовавшись инструментом дизайна, добавить Button из палитры элементов и задать атрибуты.

Атрибуты кнопки

Button является подклассом TextView и наследует атрибуты от TextView и View. Ниже приведены некоторые важные атрибуты кнопки, которые можно использовать для настройки стиля и поведения.

  • background: установка в качестве фона как цвета, так и drawable
  • onClick: установить метод, который будет запускаться при нажатии на кнопку
  • minHeight: для определения минимальной высоты кнопки
  • minWidth: для определения минимальной ширины кнопки
  • stateListAnimator: определение анимации при изменении состояния кнопки
  • focusable: для определения того, будет ли обработано нажатие клавиши
  • clickable: указать, является ли кнопка кликабельной
  • gravity: установка выравнивания текста кнопки
  • textAppearance: установить стиль текста

Включение и выключение кнопки

Вы можете использовать атрибут enabled для включения или выключения кнопки, установив его в true или false. Также это можно сделать программно, вызвав метод setEnabled(), как показано ниже:

((Button)findViewById(R.id.button)).setEnabled(false);

Кнопка с Drawable

Вы можете отображать на кнопке вместе с текстом изображение, используя drawableTop, drawableRight, drawableBottom или drawableLeft, в зависимости от того, где располагать картинку, как показано на скриншоте ниже.

ImageButton

Android также предоставляет ImageButton, задачей которого является использование изображения в качестве кнопки. Чтобы установить изображение, вы можете использовать атрибут src. Вы также можете использовать разные изображения, которые будут меняться в зависимости от состояния кнопки, меняя в XML drawable selector как показано ниже.

Пример XML drawable selector

Обработка нажатий на кнопку

Клики можно обрабатывать двумя способами. Первый — это установить атрибут onClick в разметке XML. Второй — назначить кнопке слушатель в коде активности или фрагмента.

Чтобы установить атрибут onClick, сначала определите метод типа void, принимающий в качестве параметра View, в активности или фрагменте и затем используйте имя этого метода как значение для атрибута onClick, как показано ниже.

public void doSomething(View v) < //do something >

Ниже приведён код обработки нажатия с помощью слушателя.

Button doSomethingButton = (Button) findViewById(R.id.do_something_b); doSomethingButton.setOnClickListener(new View.OnClickListener() < @Override public void onClick(View view) < //пишем код >>);

Дизайн и стили кнопок

Вы можете применять стили и темы для изменения внешнего вида кнопок. Платформа Android предоставляет заранее определённые стили. На рисунке ниже вы можете увидеть, как отображаются кнопки с различными стилями.

Пример применения темы для кнопки.

Настройка стилей кнопок

Вы можете изменить цвета по умолчанию для стилей, применяемых к кнопке, установив атрибут colorAccent на уровне приложения и атрибут colorButtonNormal на уровне виджета для нужных цветов. Атрибут colorControlHighlight используется для установки цвета кнопки, когда она находится в нажатом состоянии.

Как только вы определите собственный стиль, вы можете применить его к кнопкам с помощью атрибута theme. Ниже приведен пример пользовательской темы.

 

Кнопка с закруглёнными углами

Вы можете определить элемент inset, как показано ниже, чтобы создать кнопку с закруглёнными углами и сохранить файл с drawable в папке res/drawable. Вы можете увеличить или уменьшить атрибут радиуса элемента, чтобы отрегулировать радиус углов кнопки.

Затем определите стиль, задающий атрибут background для xml drawable и примените его к кнопке с помощью атрибута style.

 

Высота и тень кнопки

Вы можете установить атрибуты elevation и translationZ, чтобы нарисовать тень кнопки.

Настройка анимации тени

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

Обратите внимание, что stateListAnimator установлен в null в приведённом выше примере. Это было сделано для удаления аниматора по умолчанию, чтобы elevation и translationZ работали.

Чтобы настроить анимацию тени при изменении состояния кнопок, вам нужно определить селектор, как показано ниже, в папке res/animator и установить свойство stateListAnimator своей темы для определённого аниматора.

Примените следующую тему, которая использует аниматор, к кнопке с использованием атрибута style или theme.

 

Простая кнопка логина

Совмещая всё вышесказанное, можно создать красивую кнопку, позволяющую, например, заходить пользователям на свои аккаунты. Код разметки будет выглядеть следующим образом:

Кроме того, с помощью атрибута drawableLeft можно добавить изображение к нашей кнопке, в том числе и векторное. На старых устройствах, векторные изображения вызывают падение всего приложения, поэтому сделаем это программно в коде активности при помощи AppCompatResources:

((Button) findViewById(R.id.btn_email_password)).setCompoundDrawablesWithIntrinsicBounds( AppCompatResources.getDrawable(this, R.drawable.ic_vpn_key_black_24dp), null, null, null);

Метод setCompoundDrawablesWithIntrinsicBounds() делает то же, что и атрибуты drawableLeft, drawableTop и так далее. В качестве параметров нужно указать, где именно будет размещаться изображение (указываем null в случае, если здесь изображение не нужно).

Раздел: Кодинг Метки: Android, button, icon, material, shadow, style, theme

Делаем красивые кнопки в Android : 1 комментарий

  1. Георг 12.09.2022 Вообще не понятно откуда брать/как создавать
    btn_rounded_corner
    element_background
    @animator/button_elevation

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *