Android imagebutton size image

Настройка размера ImageButton в Android

есть ли способ сделать это? Я попытался заполнить изображение и установить ширину / высоту представления, но ни один из них не работает. Вот пример:

Я хочу, чтобы кнопка была шире, чем она высока,но она выходит наоборот.

6 ответов

просто играл, чтобы попытаться понять вашу проблему.

кажется ImageButton — составное представление с несколькими предварительно заданными значениями. Например, какое-то поле, которое нельзя переопределить с помощью XML. Если вы не можете изменить свой образ в соответствии с тем, что вы хотите, то вам лучше создать свой собственный составной вид.

вот мой пример составного представления вы можете сделать сами:

и оригинальные кнопки:

здесь мы можем видеть пользовательское изображение / композит кнопки, за которым следует сборка в ImageButton как часть SDK:

Set android:background вместо android:src чтобы установить изображение на кнопке. Это позволит настроить изображение на размер кнопки. Затем отрегулируйте прокладку после.

вы не должны использовать sp в качестве размера размера-dp следует использовать, поскольку это поможет вашему масштабу просмотра непосредственно с различной плотностью экрана и разрешениями. Посмотреть Здесь для измерений.

padding будет отталкивать другие элементы от границы вашего вида. margin будет толкать содержимое вашего вида внутрь от вашей границы (т. е. раздавит доступное пространство для вашего изображения) . Граница определяется по высоте и ширине. Без дополнительной информации я бы угадайте, что вас смущают ваши поля-удалите их и поэкспериментируйте.

также полезно для вас: android:scaleType=»fitXY» делает растяжки изображения, чтобы соответствовать как X и y-размеры, которые доступны для него. Это поможет вам увидеть холст, доступный вашему изображению. Как только вы почувствуете, что область достаточно велика для правильного масштабирования изображения, измените тип масштаба на centerInside. Посмотреть Здесь для всех типов масштаба.

Я использую minWidth и minHeight свойства, в сочетании с fitXY тип масштаба и упаковка его содержимого для модуляции формы моей кнопки.

вы хотите сделать свою кнопку «шире», так, например, распечатав кнопку 200X100 из квадратного значка, вы можете выложить ее так:

можете ли вы объяснить свой вопрос более широко, чтобы мы могли больше понять.

согласно моему пониманию, вы хотите установить высоту/ширину ImageButton. Но это не работает, не так ли? Я хочу спросить вас, что, если вы пишете какую-либо конкретную высоту/ширину, то и это не работает?

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

пожалуйста, объясните свой вопрос.

Я закончил макет после ответа Грэма. Четыре «imageButton» фиксируют дно, ту же ширину, изменяемый размер изображения. спасибо!

Источник

Настройка размера ImageButton в Android

есть ли способ сделать это? Я попытался заполнить изображение и установить ширину / высоту представления, но ни один из них не работает. Вот пример:

Я хочу, чтобы кнопка была шире, чем она высока,но она выходит наоборот.

6 ответов

просто играл, чтобы попытаться понять вашу проблему.

кажется ImageButton — составное представление с несколькими предварительно заданными значениями. Например, какое-то поле, которое нельзя переопределить с помощью XML. Если вы не можете изменить свой образ в соответствии с тем, что вы хотите, то вам лучше создать свой собственный составной вид.

вот мой пример составного представления вы можете сделать сами:

Читайте также:  Караоке android что это

и оригинальные кнопки:

здесь мы можем видеть пользовательское изображение / композит кнопки, за которым следует сборка в ImageButton как часть SDK:

Set android:background вместо android:src чтобы установить изображение на кнопке. Это позволит настроить изображение на размер кнопки. Затем отрегулируйте прокладку после.

вы не должны использовать sp в качестве размера размера-dp следует использовать, поскольку это поможет вашему масштабу просмотра непосредственно с различной плотностью экрана и разрешениями. Посмотреть Здесь для измерений.

padding будет отталкивать другие элементы от границы вашего вида. margin будет толкать содержимое вашего вида внутрь от вашей границы (т. е. раздавит доступное пространство для вашего изображения) . Граница определяется по высоте и ширине. Без дополнительной информации я бы угадайте, что вас смущают ваши поля-удалите их и поэкспериментируйте.

также полезно для вас: android:scaleType=»fitXY» делает растяжки изображения, чтобы соответствовать как X и y-размеры, которые доступны для него. Это поможет вам увидеть холст, доступный вашему изображению. Как только вы почувствуете, что область достаточно велика для правильного масштабирования изображения, измените тип масштаба на centerInside. Посмотреть Здесь для всех типов масштаба.

Я использую minWidth и minHeight свойства, в сочетании с fitXY тип масштаба и упаковка его содержимого для модуляции формы моей кнопки.

вы хотите сделать свою кнопку «шире», так, например, распечатав кнопку 200X100 из квадратного значка, вы можете выложить ее так:

можете ли вы объяснить свой вопрос более широко, чтобы мы могли больше понять.

согласно моему пониманию, вы хотите установить высоту/ширину ImageButton. Но это не работает, не так ли? Я хочу спросить вас, что, если вы пишете какую-либо конкретную высоту/ширину, то и это не работает?

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

пожалуйста, объясните свой вопрос.

Я закончил макет после ответа Грэма. Четыре «imageButton» фиксируют дно, ту же ширину, изменяемый размер изображения. спасибо!

Источник

Подогнать изображение в ImageButton в Android

У меня есть 6 ImageButton в моей деятельности, я устанавливаю изображения через мой код в них (не используя xml).

Я хочу, чтобы они занимали 75% площади кнопок. Но когда некоторые изображения занимают меньшую площадь, некоторые слишком велики, чтобы поместиться в кнопку imageButton. Как программно изменить размер и показать их? Ниже скриншот

ниже находится xml-файл

и фрагмент myClass.java:

Я хочу, чтобы они занимали 75% площади кнопок.

Используйте android:padding=»20dp» (при необходимости измените отступы), чтобы контролировать, сколько изображения занимает кнопка.

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

Используйте, android:scaleType=»fitCenter» чтобы Android масштабировал изображения, и android:adjustViewBounds=»true» чтобы они корректировали свои границы из-за масштабирования.

Все эти атрибуты могут быть установлены в коде на каждом ImageButton во время выполнения. Тем не менее, на мой взгляд, гораздо проще установить и просмотреть в xml.

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

Вот фрагмент того, как должна выглядеть каждая кнопка:

Источник

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(), только имеет возвращаемое значение.

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

Источник

Xamarin.Forms ImageButton

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

ImageButton Представление объединяет Button представление и Image представление для создания кнопки, содержимое которой является изображением. Пользователь нажимает ImageButton с помощью пальца или щелкает его с помощью мыши, чтобы направить приложение на выполнение определенной задачи. Однако, в отличие от Button представления, ImageButton представление не имеет концепции текста и внешнего вида текста.

Хотя в Button представлении определено Button свойство Xamarin_Forms _Button_Image «Data-=» Absolute-Path «> Image , которое позволяет отображать изображение в Button , это свойство предназначено для использования при отображении маленького значка рядом с Button текстом.

Примеры кода из этого руководств взяты из примера формсгаллери.

Задание источника изображения

ImageButton Определяет Source свойство, которое должно быть задано для изображения, отображаемого на кнопке, в качестве источника изображения — файл, URI, ресурс или поток. Дополнительные сведения о загрузке изображений из разных источников см. в разделе Images in Xamarin.Forms .

В следующем примере показано, как создать экземпляр ImageButton в XAML:

Source Свойство определяет изображение, которое отображается в ImageButton . В этом примере задается локальный файл, который будет загружен из каждого проекта платформы, в результате чего будут отображены следующие снимки экрана:

По умолчанию ImageButton является прямоугольным, но можно передать скругленные углы с помощью CornerRadius Свойства. Дополнительные сведения о ImageButton внешнем представлении см. в разделе ImageButton .

Хотя ImageButton может загрузить анимированный GIF-файл, он будет отображать только первый кадр GIF-файла.

В следующем примере показано, как создать страницу, которая функционально эквивалентна предыдущему примеру XAML, но полностью в C#:

Обработка щелчков ImageButton

ImageButton Определяет Clicked событие, возникающее при касании пользователем ImageButton пальцем или указателем мыши. Событие возникает при отпускании кнопки с пальцем или кнопкой мыши с поверхности ImageButton . Свойство должно иметь значение, равное, чтобы ImageButton IsEnabled true реагировать на касания.

Читайте также:  Android layer list drawable

В следующем примере показано, как создать экземпляр ImageButton в XAML и обменять его Clicked событие:

Clicked Для события задается обработчик событий с именем OnImageButtonClicked , который находится в файле кода программной части:

При касании ImageButton выполняется метод OnImageButtonClicked . sender Аргумент является ImageButton ответственным за это событие. Его можно использовать для доступа к ImageButton объекту или для различения нескольких объектов, ImageButton совместно использующих одно и то же Clicked событие.

Этот конкретный Clicked обработчик увеличивает счетчик и отображает значение счетчика в Label :

В следующем примере показано, как создать страницу, которая функционально эквивалентна предыдущему примеру XAML, но полностью в C#:

Отключение ImageButton

Иногда приложение находится в определенном состоянии, в котором конкретный ImageButton щелчок не является допустимой операцией. В таких случаях ImageButton следует отключить, задав IsEnabled свойству значение false .

Использование интерфейса команд

Приложение может реагировать на ImageButton касания без обработки Clicked события. ImageButton Класс реализует альтернативный механизм уведомления, называемый ImageButton или интерфейсом командной строки . Это состоит из двух свойств:

  • Command типа ICommand — интерфейс, определенный в System.Windows.Input пространстве имен.
  • CommandParameter свойство типа Object .

Этот подход подходит для связи с привязкой данных, особенно при реализации архитектуры Model-View-ViewModel (MVVM).

Дополнительные сведения об использовании интерфейса командной строки см . в разделеИспользование интерфейса команды в этой панели.

Нажатие и освобождение ImageButton

Помимо события Clicked ImageButton также определяет события Pressed и Released . Это Pressed событие возникает, когда палец нажимает на ImageButton , или кнопка мыши нажата с указателем, расположенным над ImageButton . Это Released событие возникает при отпускании кнопки мыши или пальца. Как правило, Clicked событие также срабатывает в то же время, что и Released событие, но если палец или указатель мыши выходят за пределы области ImageButton до выпуска, Clicked событие может не произойти.

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

Вид ImageButton

В дополнение к свойствам, ImageButton унаследованным от View класса, ImageButton также определяет несколько свойств, влияющих на его внешний вид:

  • Aspect показывает, как изображение будет масштабироваться в соответствии с отображаемой областью.
  • BorderColor цвет области, окружающей ImageButton .
  • BorderWidth Ширина границы.
  • CornerRadius Радиус угла ImageButton .

Aspect Свойству может быть присвоено одно из членов Aspect перечисления:

  • _Aspect_Fill «Data-ссылок =» Absolute-path «> Fill — растягивает изображение до полного и точного заполнения ImageButton . Это может привести к искажению изображения.
  • Xamarin_Forms _Aspect_AspectFill «Data-переадресная Категория =» абсолютный путь «> AspectFill — обрезает изображение таким образом, чтобы оно заполнило пропорции ImageButton .
  • Xamarin_Forms _Aspect_AspectFit «Data-леттербоксес =» Absolute-path «> AspectFit -изображение (при необходимости), чтобы весь изображение поместилось в ImageButton , с добавлением пробела в верхнюю, нижнюю или боковую часть в зависимости от того, имеет ли изображение ширину или высоту. Это значение перечисления по умолчанию Aspect .

Визуальные состояния ImageButton

ImageButton имеет объект Pressed VisualState , который можно использовать для инициации визуального изменения в ImageButton при нажатии пользователем, при условии, что он включен.

В следующем примере XAML показано, как определить визуальное состояние для Pressed состояния:

Pressed VisualState Указывает, что при ImageButton нажатии значения Pressed Свойства Xamarin_Forms _VisualElement_Scale «Data-Tab =» Absolute-Path >» Scale будет заменено значением по умолчанию от 1 до 0,8. Normal VisualState Указывает, что если ImageButton находится в нормальном состоянии, его Scale свойство будет установлено в значение 1. Таким образом, общий результат заключается в том, что при ImageButton нажатии кнопки она масштабируется немного меньше, а при ImageButton освобождении она масштабируется до размера по умолчанию.

Источник

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