Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Рисуемый ресурс — это общая концепция графики, которую можно нарисовать на экране и которую можно получить с помощью API, например getDrawable(int) или применить к другому XML-ресурсу с такими атрибутами, как android:drawable и android:icon . Существует несколько типов чертежей:
Drawable, который управляет массивом других drawable. Они рисуются в порядке массива, поэтому элемент с наибольшим индексом отображается сверху. Создает LayerDrawable .
XML-файл, который ссылается на разные растровые изображения для разных состояний — например, для использования другого изображения при нажатии кнопки. Создает StateListDrawable .
XML-файл, определяющий объект рисования, который управляет несколькими альтернативными объектами рисования, каждому из которых присвоено максимальное числовое значение. Создает LevelListDrawable .
XML-файл, определяющий объект рисования, который вставляет другой объект рисования на указанное расстояние. Это полезно, когда представлению требуется фоновый рисунок, который меньше фактических границ представления.
XML-файл, определяющий объект рисования, который отсекает другой объект рисования на основе текущего значения уровня этого объекта рисования. Создает ClipDrawable .
XML-файл, определяющий объект рисования, который изменяет размер другого объекта рисования в зависимости от его текущего значения уровня. Создает ScaleDrawable
Примечание.Ресурс цвета также можно использовать как объект рисования в XML. Например, при создании списка состояний drawable вы можете ссылаться на ресурс цвета для атрибута android:drawable ( android:drawable="@color/green" ).
Растровое изображение
Растровое изображение. Android поддерживает растровые файлы в следующих форматах: PNG (предпочтительно), WEBP (предпочтительно, требуется уровень API 17 или выше), JPG (приемлемо), GIF (не рекомендуется).
Вы можете напрямую ссылаться на растровый файл, используя имя файла в качестве идентификатора ресурса, или создать псевдоним идентификатора ресурса в XML.
Примечание. Растровые файлы могут быть автоматически оптимизированы со сжатием изображений без потерь с помощью инструмента aapt во время процесса сборки. Например, полноцветный PNG, для которого не требуется более 256 цветов, можно преобразовать в 8-битный PNG с цветовой палитрой. В результате получается изображение одинакового качества, требующее меньше памяти.
Поэтому имейте в виду, что двоичные файлы изображений, помещенные в этот каталог, могут измениться во время сборки. Если вы планируете читать изображение как битовый поток и конвертировать его в растровое изображение, вместо этого поместите изображения в папку res/raw/ , где они не оптимизированы.
Растровый файл
Растровый файл — это файл PNG, WEBP, JPG или GIF. Android создает ресурс Drawable для любого из этих файлов, когда вы сохраняете их в каталоге res/drawable/ .
расположение файла:
res/drawable/ filename .png ( .png , .webp , .jpg или .gif ) Имя файла — это идентификатор ресурса.
Растровое изображение XML — это ресурс, определенный в XML, который указывает на файл растрового изображения. Эффект представляет собой псевдоним для файла необработанного растрового изображения. XML может указывать дополнительные свойства растрового изображения, такие как сглаживание и мозаика.
Примечание. Вы можете использовать элемент как дочерний элемент элемента . Например, при создании списка состояний или списка слоев вы можете исключить атрибут android:drawable из элемента и вложить в него , определяющий элемент, который можно рисовать.
расположение файла:
res/drawable/ filename .xml Имя файла — это идентификатор ресурса.
Необходимый. Определяет источник растрового изображения и его свойства.
Атрибуты:
xmlns:android
Нить . Определяет пространство имен XML, которое должно иметь вид "http://schemas.android.com/apk/res/android" . Это требуется только в том случае, если является корневым элементом. Это не требуется, если вложен внутри .
android:src
Рисуемый ресурс . Необходимый . Ссылка на доступный ресурс.
android:antialias
Логическое значение . Включает или отключает сглаживание.
android:dither
Логическое значение . Включает или отключает сглаживание растрового изображения, если растровое изображение не имеет той же конфигурации пикселей, что и экран, например растровое изображение ARGB 8888 на экране RGB 565.
android:filter
Логическое значение . Включает или отключает фильтрацию растровых изображений. Фильтрация используется, когда растровое изображение сжимается или растягивается для сглаживания его внешнего вида.
android:gravity
Ключевое слово . Определяет гравитацию растрового изображения. Гравитация указывает, где расположить объект рисования в контейнере, если растровое изображение меньше контейнера.
Должно быть одно или несколько из следующих значений констант, разделенных | :
Ценить
Описание
top
Поместите объект вверху контейнера, не меняя его размера.
bottom
Поместите объект на дно контейнера, не меняя его размера.
left
Поместите объект у левого края контейнера, не меняя его размера.
right
Поместите объект у правого края контейнера, не меняя его размера.
center_vertical
Поместите объект в вертикальный центр его контейнера, не меняя его размера.
fill_vertical
При необходимости увеличьте вертикальный размер объекта, чтобы он полностью заполнил контейнер.
center_horizontal
Разместите объект в горизонтальном центре его контейнера, не меняя его размера.
fill_horizontal
При необходимости увеличьте горизонтальный размер объекта, чтобы он полностью заполнил контейнер.
center
Поместите объект в центр контейнера как по вертикальной, так и по горизонтальной оси, не меняя его размера.
fill
При необходимости увеличьте горизонтальный и вертикальный размер объекта, чтобы он полностью заполнил контейнер. Это значение по умолчанию.
clip_vertical
Дополнительная опция, которую можно настроить так, чтобы верхние и/или нижние края дочернего элемента были обрезаны до границ его контейнера. Зажим основан на вертикальной силе тяжести: верхняя сила тяжести зажимает нижний край, нижняя сила тяжести зажимает верхний край, и ни один из них не зажимает оба края.
clip_horizontal
Дополнительная опция, которую можно настроить так, чтобы левый и/или правый края дочернего элемента были обрезаны до границ его контейнера. Зажим основан на горизонтальной силе тяжести: левая сила тяжести зажимает правый край, правая сила тяжести зажимает левый край, и ни один из них не зажимает оба края.
android:mipMap
Логическое значение . Включает или отключает подсказку MIP-карты. См. setHasMipMap() для получения дополнительной информации. Значение по умолчанию — ложь.
android:tileMode
Ключевое слово . Определяет режим плитки. Когда режим плитки включен, растровое изображение повторяется. Гравитация игнорируется, когда включен режим плитки.
Должно быть одно из следующих постоянных значений:
Ценить
Описание
disabled
Не размещайте растровое изображение плиткой. Это значение по умолчанию.
clamp
Реплицируйте цвет края, если шейдер выходит за пределы исходных границ.
repeat
Повторите изображение шейдера по горизонтали и вертикали.
mirror
Повторяйте изображение шейдера по горизонтали и вертикали, чередуя зеркальные изображения, чтобы соседние изображения всегда совпадали.
NinePatch — это изображение PNG, в котором вы можете определить растягиваемые области, которые Android масштабирует, когда содержимое в представлении выходит за обычные границы изображения. Обычно вы назначаете этот тип изображения в качестве фона представления, у которого хотя бы одно измерение имеет значение "wrap_content" .
Когда представление увеличивается, чтобы вместить содержимое, изображение из девяти фрагментов также масштабируется в соответствии с размером представления. Примером использования изображения из девяти патчей является фон, используемый стандартным виджетом Android Button , который должен растягиваться, чтобы разместить текст (или изображение) внутри кнопки.
Как и в случае с обычным растровым изображением , вы можете ссылаться на файл с девятью исправлениями напрямую или из ресурса, определенного XML.
XML-файл с девятью исправлениями — это ресурс, определенный в XML, который указывает на файл с девятью исправлениями. XML может указывать сглаживание изображения.
расположение файла:
res/drawable/ filename .xml Имя файла — это идентификатор ресурса.
Необходимый. Определяет источник девяти патчей и его свойства.
Атрибуты:
xmlns:android
Нить . Необходимый. Определяет пространство имен XML, которое должно иметь вид "http://schemas.android.com/apk/res/android" .
android:src
Рисуемый ресурс . Необходимый . Ссылка на файл с девятью исправлениями.
android:dither
Логическое значение . Включает или отключает сглаживание растрового изображения, если растровое изображение не имеет той же конфигурации пикселей, что и экран, например растровое изображение ARGB 8888 на экране RGB 565.
пример:
Список слоев
LayerDrawable — это объект рисования, который управляет массивом других объектов рисования. Каждый рисунок в списке рисуется в порядке списка. Последний объект в списке рисуется сверху.
Каждый объект рисования представлен элементом внутри одного элемента .
расположение файла:
res/drawable/ filename .xml Имя файла — это идентификатор ресурса.
Необходимый. Это должен быть корневой элемент. Содержит один или несколько элементов .
Атрибуты:
xmlns:android
Нить . Необходимый. Определяет пространство имен XML, которое должно иметь вид "http://schemas.android.com/apk/res/android" .
Определяет объект рисования для размещения в объекте рисования слоя в положении, определяемом его атрибутами. Должен быть дочерним элементом элемента . Принимает дочерние элементы .
Атрибуты:
android:drawable
Рисуемый ресурс . Необходимый . Ссылка на доступный ресурс.
android:id
Идентификатор ресурса . Уникальный идентификатор ресурса для этого объекта. Чтобы создать новый идентификатор ресурса для этого элемента, используйте форму: "@+id/ name " . Символ плюса указывает, что он создан как новый идентификатор. Вы можете использовать этот идентификатор для получения и изменения объекта рисования с помощью View.findViewById() или Activity.findViewById() .
android:top
Измерение . Верхнее смещение как значение размера или ресурс измерения .
android:right
Измерение . Правое смещение в виде значения измерения или ресурса измерения .
android:bottom
Измерение . Нижнее смещение в виде значения размера или ресурса измерения .
android:left
Измерение . Смещение слева в виде значения измерения или ресурса измерения .
По умолчанию все рисуемые элементы масштабируются в соответствии с размером содержащего их представления. Таким образом, размещение изображений в списке слоев в разных позициях может увеличить размер изображения, а некоторые изображения масштабируются соответствующим образом.
Чтобы избежать масштабирования элементов в списке, используйте элемент внутри элемента , чтобы указать рисуемый объект и определить гравитацию для чего-то, что не масштабируется, например "center" . Например, следующий определяет элемент, который масштабируется в соответствии с представлением контейнера:
Чтобы избежать масштабирования, в следующем примере используется элемент с центрированной гравитацией:
пример:
XML-файл, сохраненный в res/drawable/layers.xml :
В этом примере используется вложенный элемент для определения рисуемого ресурса для каждого элемента с "center" силой тяжести. Это гарантирует, что ни одно из изображений не будет масштабировано в соответствии с размером контейнера из-за изменения размера, вызванного смещением изображений.
Этот XML-макет применяет возможность рисования к представлению:
В результате получается стопка изображений со все большим смещением:
StateListDrawable — это объект с возможностью рисования, определенный в XML, который использует несколько изображений для представления одной и той же графики, в зависимости от состояния объекта. Например, виджет Button может находиться в состоянии касания, фокусировки или ни того, ни другого; используя рисуемый список состояний, вы можете предоставить различное фоновое изображение для каждого состояния.
Вы описываете список состояний в файле XML. Каждое изображение представлено элементом внутри одного элемента . Каждый использует различные атрибуты для описания состояния, в котором он используется в качестве изображения для рисуемого объекта.
При каждом изменении состояния список состояний просматривается сверху вниз и используется первый элемент, соответствующий текущему состоянию. Выбор основан не на «наилучшем совпадении», а на первом элементе, который соответствует минимальным критериям штата.
расположение файла:
res/drawable/ filename .xml Имя файла — это идентификатор ресурса.
Необходимый. Это должен быть корневой элемент. Содержит один или несколько элементов .
Атрибуты:
xmlns:android
Нить . Необходимый. Определяет пространство имен XML, которое должно иметь вид "http://schemas.android.com/apk/res/android" .
android:constantSize
Логическое значение . Истинно, если сообщаемый внутренний размер рисуемого объекта остается постоянным при изменении состояния (размер является максимальным из всех состояний); false, если размер меняется в зависимости от текущего состояния. По умолчанию — ложь.
android:dither
Логическое значение . Значение true, чтобы включить сглаживание растрового изображения, если растровое изображение не имеет той же конфигурации пикселей, что и экран, например растровое изображение ARGB 8888 на экране RGB 565; false, чтобы отключить сглаживание. По умолчанию верно.
android:variablePadding
Логическое значение . True, если заполнение рисуемого объекта изменяется в зависимости от текущего выбранного состояния; false, если заполнение должно оставаться прежним, исходя из максимального заполнения всех состояний. Включение этой функции требует, чтобы вы выполняли макет при изменении состояния, что часто не поддерживается. По умолчанию — ложь.
Определяет объект Drawable, который будет использоваться в определенных состояниях, как описано его атрибутами. Должен быть дочерним элементом элемента .
Атрибуты:
android:drawable
Рисуемый ресурс . Необходимый . Ссылка на доступный ресурс.
android:state_pressed
Логическое значение . True, если этот элемент используется при касании объекта, например при нажатии кнопки; false, если этот элемент используется в неиспользуемом состоянии по умолчанию.
android:state_focused
Логическое значение . True, если этот элемент используется, когда объект имеет фокус ввода, например, когда пользователь выбирает ввод текста; false, если этот элемент используется по умолчанию, в несфокусированном состоянии.
android:state_hovered
Логическое значение . True, если этот элемент используется при наведении курсора на объект; false, если этот элемент используется по умолчанию, без наведения. Часто этот объект рисования может быть тем же объектом, который используется для «сфокусированного» состояния.
Представлено на уровне API 14.
android:state_selected
Логическое значение . True, если этот элемент используется, когда объект является текущим выбором пользователя при навигации с помощью элемента управления направлением, например, при навигации по списку с помощью крестовины; false, если этот элемент используется, когда объект не выбран.
Выбранное состояние используется, когда android:state_focused недостаточно, например, когда представление списка имеет фокус и элемент внутри него выбирается с помощью D-pad.
android:state_checkable
Логическое значение . Истинно, если этот элемент используется, когда объект доступен для выбора; false, если этот элемент используется, когда объект недоступен для выбора. Полезно только в том случае, если объект может переходить между выбираемым и невыбираемым виджетом.
android:state_checked
Логическое значение . True, если этот элемент используется при выборе объекта; false, если он используется, когда объект не выбран.
android:state_enabled
Логическое значение . True, если этот элемент используется, когда объект включен, то есть способен получать события касания или щелчка; false, если он используется, когда объект отключен.
android:state_activated
Логическое значение . True, если этот элемент используется, когда объект активируется в качестве постоянного выбора, например, для «выделения» ранее выбранного элемента списка в постоянном представлении навигации; false, если он используется, когда объект не активирован.
Представлено на уровне API 11.
android:state_window_focused
Логическое значение . True, если этот элемент используется, когда окно приложения находится в фокусе, то есть приложение находится на переднем плане; false, если этот элемент используется, когда окно приложения не имеет фокуса, например, если шторка уведомления опущена или появляется диалоговое окно.
Примечание. Android применяет первый элемент в списке состояний, соответствующий текущему состоянию объекта. Таким образом, если первый элемент в списке не содержит ни одного из предыдущих атрибутов состояния, он применяется каждый раз. Вот почему вы хотите, чтобы значение по умолчанию всегда было последним, как показано в следующем примере.
пример:
XML-файл, сохраненный в res/drawable/button.xml :
Этот XML-макет применяет список состояний, который можно нарисовать к кнопке:
Drawable, который управляет несколькими альтернативными drawables, каждому из которых присвоено максимальное числовое значение. Установка значения уровня объекта drawable с помощью setLevel() загружает ресурс drawable в список уровней, значение которого android:maxLevel больше или равно значению, переданному методу.
расположение файла:
res/drawable/ filename .xml Имя файла — это идентификатор ресурса.
TransitionDrawable — это рисуемый объект, который может плавно переходить между двумя другими рисуемыми ресурсами.
Каждый объект рисования представлен элементом внутри одного элемента . Поддерживается не более двух элементов. Чтобы перейти вперед, вызовите startTransition() . Чтобы перейти назад, вызовите reverseTransition() .
расположение файла:
res/drawable/ filename .xml Имя файла — это идентификатор ресурса.
Необходимый. Это должен быть корневой элемент. Содержит один или несколько элементов .
Атрибуты:
xmlns:android
Нить . Необходимый. Определяет пространство имен XML, которое должно иметь вид "http://schemas.android.com/apk/res/android" .
Определяет объект рисования, который будет использоваться как часть рисуемого перехода. Должен быть дочерним элементом элемента . Принимает дочерние элементы .
Атрибуты:
android:drawable
Рисуемый ресурс . Необходимый . Ссылка на доступный ресурс.
android:id
Идентификатор ресурса . Уникальный идентификатор ресурса для этого объекта. Чтобы создать новый идентификатор ресурса для этого элемента, используйте форму: "@+id/ name " . Символ плюса указывает, что он создан как новый идентификатор. Вы можете использовать этот идентификатор для получения и изменения объекта рисования с помощью View.findViewById() или Activity.findViewById() .
android:top
Целое число . Верхнее смещение в пикселях.
android:right
Целое число . Правое смещение в пикселях.
android:bottom
Целое число . Нижнее смещение в пикселях.
android:left
Целое число . Смещение слева в пикселях.
пример:
XML-файл, сохраненный в res/drawable/transition.xml :
Этот XML-макет применяет возможность рисования к представлению:
А следующий код выполняет переход за 500 мс от первого элемента ко второму:
Котлин
val button: ImageButton = findViewById(R.id.button)
val drawable: Drawable = button.drawable
if (drawable is TransitionDrawable) {
drawable.startTransition(500)
}
Объект рисования, определенный в XML, который вставляет другой объект рисования на указанное расстояние. Это полезно, когда для представления требуется фон, который меньше фактических границ представления.
расположение файла:
res/drawable/ filename .xml Имя файла — это идентификатор ресурса.
Объект рисования, определенный в XML, который отсекает другой объект рисования на основе текущего уровня этого объекта рисования. Вы можете контролировать, насколько обрезается дочерний объект по ширине и высоте в зависимости от уровня, а также гравитацию, чтобы контролировать, где он размещается в общем контейнере. Чаще всего используется для реализации таких вещей, как индикаторы выполнения.
расположение файла:
res/drawable/ filename .xml Имя файла — это идентификатор ресурса.
Необходимый. Определяет клип, который можно рисовать. Это должен быть корневой элемент.
Атрибуты:
xmlns:android
Нить . Необходимый. Определяет пространство имен XML, которое должно иметь вид "http://schemas.android.com/apk/res/android" .
android:drawable
Рисуемый ресурс . Необходимый . Ссылка на ресурс, который можно обрезать.
android:clipOrientation
Ключевое слово . Ориентация клипа.
Должно быть одно из следующих постоянных значений:
Ценить
Описание
horizontal
Закрепите выдвижной элемент горизонтально.
vertical
Закрепите вытягиваемый вертикально.
android:gravity
Ключевое слово . Указывает, где обрезать рисунок.
Должно быть одно или несколько из следующих значений констант, разделенных | :
Ценить
Описание
top
Поместите объект вверху контейнера, не меняя его размера. Когда clipOrientation имеет значение "vertical" , обрезка происходит в нижней части рисуемого объекта.
bottom
Поместите объект на дно контейнера, не меняя его размера. Когда clipOrientation имеет значение "vertical" , обрезка происходит в верхней части рисуемого объекта.
left
Поместите объект у левого края контейнера, не меняя его размера. Это значение по умолчанию. Когда clipOrientation имеет значение "horizontal" , обрезка происходит с правой стороны рисуемого объекта.
right
Поместите объект у правого края контейнера, не меняя его размера. Когда clipOrientation имеет значение "horizontal" , обрезка происходит с левой стороны рисуемого объекта.
center_vertical
Поместите объект в вертикальный центр его контейнера, не меняя его размера. Отсечение ведет себя так же, как и в случае, когда гравитация находится в "center" .
fill_vertical
При необходимости увеличьте вертикальный размер объекта, чтобы он полностью заполнил контейнер. Когда clipOrientation имеет значение "vertical" , обрезка не происходит, поскольку рисуемый объект заполняет вертикальное пространство (если только уровень рисования не равен 0, в этом случае он не виден).
center_horizontal
Поместите объект в горизонтальный центр его контейнера, не меняя его размера. Отсечение ведет себя так же, как и в случае, когда гравитация находится в "center" .
fill_horizontal
При необходимости увеличьте горизонтальный размер объекта, чтобы он полностью заполнил контейнер. Когда clipOrientation имеет значение "horizontal" , обрезка не происходит, поскольку рисуемый объект заполняет горизонтальное пространство (если только уровень рисования не равен 0, в этом случае он не виден).
center
Поместите объект в центр контейнера как по вертикальной, так и по горизонтальной оси, не меняя его размера. Когда clipOrientation имеет значение "horizontal" , обрезка происходит слева и справа. Когда clipOrientation имеет значение "vertical" , обрезка происходит сверху и снизу.
fill
При необходимости увеличьте горизонтальный и вертикальный размер объекта, чтобы он полностью заполнил контейнер. Никакого отсечения не происходит, поскольку рисуемый объект заполняет горизонтальное и вертикальное пространство (если только уровень рисования не равен 0, в этом случае он не виден).
clip_vertical
Дополнительная опция, которую можно настроить так, чтобы верхние и/или нижние края дочернего элемента были обрезаны до границ его контейнера. Зажим основан на вертикальной силе тяжести: верхняя сила тяжести зажимает нижний край, нижняя сила тяжести зажимает верхний край, и ни один из них не зажимает оба края.
clip_horizontal
Дополнительная опция, которую можно настроить так, чтобы левый и/или правый края дочернего элемента были обрезаны до границ его контейнера. Зажим основан на горизонтальной силе тяжести: левая сила тяжести зажимает правый край, правая сила тяжести зажимает левый край, и ни один из них не зажимает оба края.
пример:
XML-файл, сохраненный в res/drawable/clip.xml :
Следующий XML макета применяет клип, который можно рисовать, к представлению:
Следующий код получает возможность рисования и увеличивает объем обрезки для постепенного раскрытия изображения:
Котлин
val imageview: ImageView = findViewById(R.id.image)
val drawable: Drawable = imageview.background
if (drawable is ClipDrawable) {
drawable.level = drawable.level + 1000
}
Увеличение уровня уменьшает количество обрезки и медленно раскрывает изображение. Вот он на уровне 7000:
Примечание. Уровень по умолчанию — 0, который полностью обрезается, поэтому изображение не видно. Когда уровень равен 10 000, изображение не обрезается и полностью видно.
Необходимый. Определяет масштаб рисования. Это должен быть корневой элемент.
Атрибуты:
xmlns:android
Нить . Необходимый. Определяет пространство имен XML, которое должно иметь вид "http://schemas.android.com/apk/res/android" .
android:drawable
Рисуемый ресурс . Необходимый . Ссылка на доступный ресурс.
android:scaleGravity
Ключевое слово . Указывает положение гравитации после масштабирования.
Должно быть одно или несколько из следующих значений констант, разделенных | :
Ценить
Описание
top
Поместите объект вверху контейнера, не меняя его размера.
bottom
Поместите объект на дно контейнера, не меняя его размера.
left
Поместите объект у левого края контейнера, не меняя его размера. Это значение по умолчанию.
right
Поместите объект у правого края контейнера, не меняя его размера.
center_vertical
Поместите объект в вертикальный центр его контейнера, не меняя его размера.
fill_vertical
При необходимости увеличьте вертикальный размер объекта, чтобы он полностью заполнил контейнер.
center_horizontal
Поместите объект в горизонтальный центр его контейнера, не меняя его размера.
fill_horizontal
При необходимости увеличьте горизонтальный размер объекта, чтобы он полностью заполнил контейнер.
center
Поместите объект в центр контейнера как по вертикальной, так и по горизонтальной оси, не меняя его размера.
fill
При необходимости увеличьте горизонтальный и вертикальный размер объекта, чтобы он полностью заполнил контейнер.
clip_vertical
Дополнительная опция, которую можно настроить так, чтобы верхние и/или нижние края дочернего элемента были обрезаны до границ его контейнера. Зажим основан на вертикальной силе тяжести: верхняя сила тяжести зажимает нижний край, нижняя сила тяжести зажимает верхний край, и ни один из них не зажимает оба края.
clip_horizontal
Дополнительная опция, которую можно настроить так, чтобы левый и/или правый края дочернего элемента были обрезаны до границ его контейнера. Зажим основан на горизонтальной силе тяжести: левая сила тяжести зажимает правый край, правая сила тяжести зажимает левый край, и ни один из них не зажимает оба края.
android:scaleHeight
Процент . Высота шкалы, выраженная в процентах от границы рисуемого объекта. Формат значения — XX%, например 100% или 12,5%.
android:scaleWidth
Процент . Ширина шкалы, выраженная в процентах от границы рисуемого объекта. Формат значения — XX%, например 100% или 12,5%.
Горизонтальная линия, охватывающая ширину содержащего представления. Для этой формы требуется элемент , чтобы определить ширину линии.
"ring"
Форма кольца.
Следующие атрибуты используются только при android:shape="ring" :
android:innerRadius
Измерение . Радиус внутренней части кольца (отверстие посередине) как значение размера или ресурс размера .
android:innerRadiusRatio
Плавать . Радиус внутренней части кольца, выраженный как отношение ширины кольца. Например, если android:innerRadiusRatio="5" , то внутренний радиус равен ширине кольца, разделенной на 5. Это значение переопределяется android:innerRadius . Значение по умолчанию — 9.
android:thickness
Измерение . Толщина кольца как значение размера или ресурс размера .
android:thicknessRatio
Плавать . Толщина кольца выражается как отношение ширины кольца. Например, если android:thicknessRatio="2" , то толщина равна ширине кольца, разделенной на 2. Это значение переопределяется android:innerRadius . Значение по умолчанию — 3.
android:useLevel
Логическое значение . True, если это используется как LevelListDrawable . Обычно это неверно, иначе ваша фигура может не появиться.
Создает закругленные углы фигуры. Применяется только в том случае, если фигура представляет собой прямоугольник.
Атрибуты:
android:radius
Измерение . Радиус для всех углов в виде значения размера или ресурса размера . Это переопределяется для каждого угла следующими атрибутами.
android:topLeftRadius
Измерение . Радиус верхнего левого угла в виде значения размера или ресурса измерения .
android:topRightRadius
Измерение . Радиус верхнего правого угла в виде значения размера или ресурса измерения .
android:bottomLeftRadius
Измерение . Радиус нижнего левого угла в виде значения размера или ресурса измерения .
android:bottomRightRadius
Измерение . Радиус правого нижнего угла в виде значения размера или ресурса измерения .
Примечание. Изначально каждый угол должен иметь радиус угла больше 1, иначе углы не будут закруглены. Если вы хотите, чтобы определенные углы не были закруглены, обходным путем является использование android:radius чтобы установить радиус угла по умолчанию больше 1, а затем переопределить каждый угол значениями, которые вам действительно нужны, указав 0 («0dp») там, где вы этого не делаете. Мне не нужны закругленные углы.
Задает цвет градиента для фигуры.
Атрибуты:
android:angle
Целое число . Угол градиента в градусах. 0 слева направо, 90 снизу вверх. Оно должно быть кратно 45. Значение по умолчанию — 0.
android:centerX
Плавать . Относительное X-положение центра градиента (0–1,0).
android:centerY
Плавать . Относительное положение по оси Y центра градиента (0–1,0).
android:centerColor
Цвет . Необязательный цвет, который находится между начальным и конечным цветами в виде шестнадцатеричного значения или ресурса цвета .
android:endColor
Цвет . Конечный цвет в виде шестнадцатеричного значения или ресурса цвета .
android:gradientRadius
Плавать . Радиус градиента. Применяется только тогда, когда android:type="radial" .
android:startColor
Цвет . Начальный цвет в виде шестнадцатеричного значения или ресурса цвета .
android:type
Ключевое слово . Тип применяемого шаблона градиента. Допустимые значения:
Ценить
Описание
"linear"
Линейный градиент. Это значение по умолчанию.
"radial"
Радиальный градиент. Начальный цвет — это центральный цвет.
"sweep"
Широкая линия градиента.
android:useLevel
Логическое значение . True, если это используется как LevelListDrawable .
Заполнение, применяемое к содержащему элементу представления. Это дополняет положение содержимого представления, а не формы.
Атрибуты:
android:left
Измерение . Заполнение слева в качестве значения измерения или ресурса измерения .
android:top
Измерение . Верхнее дополнение в качестве значения измерения или ресурса измерения .
android:right
Измерение . Заполнение справа в качестве значения измерения или ресурса измерения .
android:bottom
Измерение . Нижнее дополнение в качестве значения измерения или ресурса измерения .
Размер формы.
Атрибуты:
android:height
Измерение . Высота фигуры как значение размера или ресурс измерения .
android:width
Измерение . Ширина фигуры как значение размера или ресурс измерения .
Примечание. По умолчанию фигура масштабируется до размера представления контейнера, пропорционального определенным здесь размерам. Когда вы используете фигуру в ImageView , вы можете ограничить масштабирование, установивandroid:scaleType значение "center" .
Сплошной цвет для заполнения формы.
Атрибуты:
android:color
Цвет . Цвет, применяемый к фигуре, в виде шестнадцатеричного значения или ресурса цвета .
Линия обводки фигуры.
Атрибуты:
android:width
Измерение . Толщина линии как значение размера или ресурс измерения .
android:color
Цвет . Цвет линии в виде шестнадцатеричного значения или ресурса цвета .
android:dashGap
Измерение . Расстояние между штрихами линий как значение размера или ресурс измерения . Действует только в том случае, если установлен android:dashWidth .
android:dashWidth
Измерение . Размер каждой пунктирной линии как значения измерения или ресурса измерения . Действует только в том случае, если установлен android:dashGap .
пример:
XML-файл, сохраненный в res/drawable/gradient_box.xml :
Этот XML макета применяет фигуру, которую можно рисовать, к представлению:
Этот код приложения получает фигуру, которую можно нарисовать, и применяет ее к представлению:
Котлин
val shape: Drawable? = getDrawable(resources, R.drawable.gradient_box, getTheme())
val tv: TextView = findViewById(R.id.textview)
tv.background = shape
Ява
Resources res = getResources();
Drawable shape = ResourcesCompat.getDrawable(res, R.drawable.gradient_box, getTheme());
TextView tv = (TextView)findViewById(R.id.textview);
tv.setBackground(shape);
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-01-13 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-01-13 UTC."],[],[]]