Android
9-патч-изображения
Поиск…
замечания
Файл с 9 патчами - это специально отформатированный файл, так что Android знает, какие области / части изображения могут масштабироваться или не могут быть масштабированы. Это разбивает ваше изображение на сетку 3x3. Углы остаются немасштабированными, стороны масштабируются в одном направлении, а центр масштабируется в обоих измерениях.
Изображение Nine Patch (9-Patch) представляет собой растровое изображение, которое имеет ширину одного пикселя вокруг всего изображения. Игнорирование 4 пикселей в углах изображения. Эта граница обеспечивает метаданные для самого растрового изображения. Границы отмечены сплошной черной линией (линиями).
Изображение с .9.png
хранится с расширением .9.png
.
Верхняя граница указывает области, которые растягиваются горизонтально. Левая граница указывает области, которые растягиваются вертикально.
Нижняя граница указывает на заполнение по горизонтали. Правая рамка указывает на добавление по вертикали.
Границы заполнения обычно используются для определения того, где текст должен быть нарисован.
Существует отличный инструмент, предоставляемый Google, что значительно упрощает создание этих файлов.
Находится в Android SDK: android-sdk\tools\lib\draw9patch.jar
Основные закругленные углы
Ключ к правильному растягиванию находится в верхней и левой границах.
Верхняя граница контролирует горизонтальное растяжение, а левая граница контролирует вертикальное растяжение.
Этот пример создает закругленные углы, подходящие для тоста.
Детали изображения, которые находятся ниже верхней границы и справа от левой границы, будут расширяться, чтобы заполнить все неиспользуемое пространство.
Этот пример будет растянут на все комбинации размеров, как показано ниже:
Основной счетчик
Spinner
можно перераспределить в соответствии с вашими требованиями к стилю с помощью Nine Patch.
В качестве примера см. Этот Девять исправлений:
Как вы можете видеть, он имеет 3 чрезвычайно маленьких участка растяжения.
Верхняя граница только слева от значка. Это означает, что я хочу, чтобы левая сторона (полная прозрачность) рисовала, чтобы заполнить вид Spinner
до тех пор, пока значок не будет достигнут.
На левой границе отмечены прозрачные сегменты вверху и внизу значка. Это означает, что верхний и нижний будут расширяться до размера представления Spinner
. Это приведет к тому, что сам значок будет центрирован по вертикали.
Использование изображения без метаданных Nine Patch:
Использование изображения с помощью метаданных Nine Patch:
Дополнительные соединительные линии
Изображения с девятью патчами позволяют дополнительно определять линии заполнения в изображении. Проводными линиями являются линии справа и внизу.
Если представление задает изображение с 9 патчами в качестве фона, строки заполнения используются для определения пространства для содержимого View (например, ввода текста в EditText
). Если строки заполнения не определены, вместо них используются левая и верхняя строки.
Область содержимого растянутого изображения выглядит следующим образом: