Imagebutton android studio text

ImageButton (Кнопка-изображение)

Общая информация

Находится в разделе Buttons.

Компонент ImageButton представляет собой кнопку с изображением (вместо текста). По умолчанию ImageButton похож на обычную кнопку.

В режиме дизайна изображение на кнопке определяется атрибутом android:src

Можно сделать двойной щелчок, чтобы сразу установить нужное свойство.

Методы

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

setImageBitmap() Используется, чтобы указать в качестве изображения существующий экземпляр класса Bitmap setImageDrawable() Используется, чтобы указать в качестве изображения существующий экземпляр класса Drawable setImageResource() Используется, чтобы указать в качестве изображения существующий идентификатор ресурса (см. пример) setImageURI() Используется, чтобы указать в качестве изображения существующий адрес типа Uri. В некоторых случаях элемент кэширует изображение и после изменения изображения по прежнему выводит старую версию. Рекомендуется использовать инструкцию setImageURI(null) для сброса кэша и повторный вызов метода с нужным Uri

Примеры

С помощью метода setImageURI() можно обратиться к ресурсу типа Drawable по его идентификатору:

Например, можно задать путь Uri:

Можно обратиться к ресурсу по его типу/имени:

В этом случае код будет следующим:

Щелчок

Как и у обычной кнопки, интерес представляет только щелчок. В нашем примере мы будем менять поочередно картинки на кнопке (нужно подготовить две картинки в папке drawable)

Теперь при каждом щелчке изображение на кнопке будет циклически переключаться между двумя картинками.

Продолжительное нажатие

Кроме обычного щелчка, в Android есть особый вид нажатия на кнопку — продолжительное нажатие. Это событие происходит, когда пользователь нажимает и удерживает кнопку в течение одной секунды. Этот тип нажатия обрабатывается независимо от обычного щелчка.

Для обработки продолжительного нажатия нужно реализовать класс View.OnLongClickListener и передать его в метод setOnLongClickListener(). Класс OnLongClickListener имеет один обязательный метод OnLongClick(). В принципе это похоже на метод OnClick(), только имеет возвращаемое значение.

Запустите проект и убедитесь, что при быстром нажатии ничего не происходит, а при более продолжительном нажатии всплывает сообщение.

Источник

Как показать текст на ImageButton?

У меня есть ImageButton, и я хочу показать текст и изображение на нем. Но когда я пытаюсь

Я получаю эмулятор, у кнопки есть изображение, но без текста. Как я могу показать текст, пожалуйста, помогите мне!

Поскольку вы не можете использовать android:text я рекомендую вам использовать обычную кнопку и использовать одну из составных чертежей. Например:

Вы можете поместить выталкиваемый, где хотите, с помощью: drawableTop , drawableBottom , drawableLeft или drawableRight .

ОБНОВИТЬ

Для кнопки это тоже работает очень хорошо. Ввод android:background в порядке!

У меня была эта проблема и она работает отлично.

Технически можно поместить надпись на кнопку с изображением, если вы действительно хотите это сделать. Просто поставьте текстовое изображение над кнопкой изображения, используя FrameLayout. Просто не забудьте сделать Textview доступным.

На самом деле, android:text не является аргументом, принятым ImageButton но, если вы пытаетесь получить кнопку с указанным фоном (не по умолчанию для Android), используйте атрибут android:background xml или объявите его из класса с .setBackground();

Вы можете использовать обычную Button и атрибут android: drawableTop (или слева, справа, снизу).

Вы можете использовать LinearLayout вместо того, чтобы использовать Button , это соглашение, которое я использовал в своем приложении.

Читайте также:  Андроид без блютуз адаптер

Я решил это, поставив ImageButton и TextView внутри LinearLayout с вертикальной ориентацией. Прекрасно работает!

Вот хороший пример:

И затем кнопка в вашем XML-файле:

ImageButton не может иметь text (или, по крайней мере, android:text не указан в его атрибутах).

Похоже, вам нужно использовать Button (и посмотреть на setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)) или setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)) .

Ребята Мне нужно разработать кнопку настройки и выхода из системы, я использовал приведенный ниже код.

Вы можете вставлять текст только в кнопку «Изображение». Тем не менее, вы можете сделать снимок экрана с некоторым текстом и использовать его в качестве своего изображения. Или вы можете отобразить на нем правильную кнопку.

Источник

Как показать текст на ImageButton?

у меня есть ImageButton и я хочу показать текст и изображения на нем. Но когда я примеряю эмулятор:

Я получаю изображение, но без текста. Как я могу показать текст? Пожалуйста, помогите мне!

10 ответов

как вы не можете использовать android:text Я рекомендую вам использовать обычную кнопку и использовать один из составных чертежей. Например:

вы можете поместить drawable везде, где вы хотите, используя: drawableTop , drawableBottom , drawableLeft или drawableRight .

обновление

для кнопки это тоже работает довольно хорошо. Положить android:background отлично!

у меня просто была эта проблема и работает отлично.

технически возможно поставить подпись на ImageButton Если вы действительно хотите сделать это. Просто поставьте TextView на ImageButton С помощью FrameLayout . Просто помните, чтобы не сделать Textview кликабельно.

на самом деле android:text не является аргументом, принятым ImageButton но, если вы пытаетесь получить кнопку с указанным фоном (не Android по умолчанию), используйте android:background XML-атрибута, или объявить его из класса с .setBackground();

можно использовать LinearLayout вместо Button это договоренность, которую я использовал в своем приложении

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

вы можете использовать обычный Button и атрибут android:drawableTop (или слева, справа, внизу) вместо этого.

Я решил это, поставив ImageButton и TextView внутри LinearLayout С вертикальной ориентацией. Отлично работает!

вот хороший пример круга:

а затем кнопка в вашем xml-файле:

ImageButton не может быть text (или, по крайней мере, android:text не указан в атрибутах).

фокус в том, что:

похоже, вам нужно использовать Button (и посмотреть drawableTop или setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)) .

Источник

Android: объединение текста и изображения на кнопке или ImageButton

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

если я использую ImageButton У меня даже нет возможности добавить текст. Если я использую Button Я могу добавить текст, но только определить изображение с android:drawableBottom и аналогичные атрибуты XML, как определено здесь.

однако эти атрибуты объединяют только текст и изображение в X-и y-измерениях, что означает, что я могу рисовать изображение вокруг моего текста, но не ниже/под моим текстом (с осью z, определенной как выходящая из дисплея).

какие-либо предложения о том, как это сделать? Одной из идей было бы либо расширить Button или ImageButton и переопределить draw() -метод. Но с моим текущим уровнем знаний я действительно не знаю, как это сделать (2D-рендеринг). Может быть, кто-то с большим опытом знает решение или хотя бы некоторые указатели для начала?

14 ответов:

можно назвать setBackground() на Button для установки фона кнопки.

любой текст будет отображаться над фоном.

Если вы ищете что-то подобное в xml есть: android:background атрибут, который работает таким же образом.

Читайте также:  Google помощник для android

для пользователей, которые просто хотят поставить фон, значок-изображение и текст в одном Button из разных файлов: установить на Button фон, drawableTop / Bottom/Rigth / Left и обивка атрибуты.

для более сложного расположения вы также можете использовать RelativeLayout и сделать его интерактивным.

есть гораздо лучшее решение этой проблемы.

просто нормальный Button и с помощью drawableLeft и gravity атрибуты.

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

просто используйте LinearLayout и притворитесь, что это Button установка background и clickable ключ:

Изз довольно хороший трюк.. 😉

Я взял другой подход от тех, которые указаны здесь, и он работает очень хорошо, поэтому я хотел бы поделиться им.

Я использую стиль для создания пользовательской кнопки с изображением слева и текстом в центре справа. Просто следуйте 4 «простых шага» ниже:

I. создайте свои 9 патчей, используя по крайней мере 3 разных файла PNG и инструмент, который у вас есть: /YOUR_OWN_PATH/android-sdk-mac_x86/tools/./draw9patch. После этого вы должны быть:

button_normal.9.формат PNG, button_focused.9.png и button_pressed.9.png

затем загрузите или создайте значок 24×24 PNG.

сохранить все в папке drawable / на вашем проекте Android.

второй. Создать XML-файл, называемый button_selector.xml в вашем проекте в папке drawable/. Государства должны быть такими:

раздел III. Перейти к значениям/ папку и открыть или создать стили.xml-файл и создайте следующий XML код:

ButtonNormalTextWithIcon является «дочерним стилем», потому что он расширяет ButtonNormalText («родительский стиль»).

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

раздел IV. Перейдите к папке, в план/ где у вас есть свой XML для ИП и перейти на кнопку, где вы хотите применить стиль, и сделать его выглядит так:

и. вуаля! У вас есть кнопка с изображением на левой стороне.

для меня это лучший способ сделать это! потому что, делая это таким образом, вы можете управлять размером текста кнопки отдельно от значка, который вы хотите отобразить, и использовать тот же фон, который можно нарисовать для нескольких кнопок с разными значками, соблюдая принципы пользовательского интерфейса Android с использованием стилей.

вы также можете создать тему для вашего приложения и добавить «родительский стиль» в это так, что все кнопки выглядят одинаково, и применить «дочерний стиль» со значком только там, где вам это нужно.

Источник

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

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

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

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

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

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

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

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

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

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

Кнопка с Drawable

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

ImageButton

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

Пример XML drawable selector

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

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

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

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

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

Вы можете применять стили и темы для изменения внешнего вида кнопок. Платформа 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:

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

Источник

Оцените статью