Создание и использование 9-патч-изображений в Android
Недавно я услышал о 9-патч-изображениях. Я знаю его 9 плиток и растяжимых. Я хотел бы узнать больше об этом.
-
Как создать 9-патч-образ?
Есть ли какой-нибудь инструмент? Могу ли я создать его из AndroidSDK или кода?
-
Основные преимущества 9-патча поверх обычного png?
(он растягивается динамически/автоматически в соответствии с экраном?)
Ответы
Ответ 1
Сегодня я обнаружил девять патч-изображений. Документация, связанная с другими ответами, в порядке, я полагаю, но на самом деле им не хватает примеров. В этом маленьком учебнике есть несколько замечательных примеров, которые отвечают на вторую часть вашего вопроса, объясняя, как работает масштабирование - не только для кнопок, но и для фреймов. В девятом патче можно указать непересекающиеся области для масштабирования.
Чтобы отфильтровать ответы на первую часть вашего вопроса, SDK поставляется с "draw9patch" (в папке с инструментами), который является простым редактором. Вот еще один загружаемый файл, который хорош, и имеет простой, но умный образ по умолчанию.
Ответ 2
В большинстве примеров говорится о создании 9-патч-образа, но детали реализации обычно остаются на высоком уровне.
Ник пост выше - с хорошим 9-патч-учебником, который обеспечивает файл загрузки рабочего проекта, сохраненный день.
Вот основные детали реализации, которые работали для меня (после того, как у вас есть 9-патч-образ, готовый к работе):
-
Ссылка на drawable с именем, но не включающим .9.png(автозаполнение в eclipse позаботится об этом)
-
Удостоверьтесь, что у вас есть только 1 изображение в папке с основным/доступным (не версия для каждой папки с тэгами)
-
Изображение должно быть указано с использованием: background, not: src (это заставило меня застрять некоторое время)
android:background="@drawable/splash_logo"
-
Убедитесь, что содержащееся в нем изображение и макет:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
Ответ 3
Как создать 9-патч-образ? Есть ли какой-нибудь инструмент? Могу ли я создать его из AndroidSDK или кода?
При поиске основной поисковой системы для android 9-patch tool
самый первый хит для страницы документации разработчика Android в инструменте draw9patch
/a > .
Основные преимущества 9-патча поверх обычного png? (он растягивается динамически/автоматически в соответствии с экраном?)
Документация разработчика Android содержит другие страницы, которые описывают файлы с девятью патчами PNG. Эта документация включает в себя такие проходы, как:
Графика NinePatchDrawable - это растягиваемое растровое изображение, которое Android автоматически изменит размер, чтобы разместить содержимое представления, в которое вы поместили его в качестве фона. Пример использования NinePatch - это фон, используемый стандартными кнопками Android - кнопки должны растягиваться для размещения строк различной длины.
Ответ 4
С 9-патч-изображением вы можете выбрать, какая часть вашего изображения может быть растянута.
Это должно быть png-изображение, а имя должно заканчиваться на .9.png(something.9.png)
http://developer.android.com/tools/help/draw9patch.html
Простой инструмент для всех плотностей:
http://android-ui-utils.googlecode.com/hg/asset-studio/dist/nine-patches.html
Ответ 5
1. Каковы изображения NinePatch?
Изображения NinePatch представляют собой изображения PNG, которые отмечают части изображения, которые могут быть растянуты. Они имеют расширение, подобное image_name.9.png
.
2. Где они хранятся в проекте Android?
res/drawable/image_name.9.png
3.Как создать образ NinePatch для вашего анддроидного приложения?
Android SDK включает инструмент WYSIWIG draw9patch.jar
в вашей папке Android SDK /tools
.
![enter image description here]()
Ответ 6
Основные преимущества 9-патча поверх обычного png
Фактически 9 патчей изображения растягиваются, повторяемые изображения уменьшаются до наименьшего размера. Изображение не будет растягиваться и распускать пропорции в разных размерах экрана. Еще одним преимуществом является память.
Одинаковая память небольшого размера может быть повторно использована для разных устройств размера экрана. Хорошо продуманные 9-патч-изображения менее подвержены ошибкам и имеют высокую повторяемость.
https://developer.android.com/studio/write/draw9patch.html
Ответ 7
Это хороший инструмент:
Нажмите здесь.
9 Патч-изображения растягиваются, повторяемые изображения уменьшаются до наименьшего размера. Простейшим примером могло бы быть, если бы вы взяли закругленный div и нарезали его на 9 квадратов, как если бы вы использовали плату tic-tac-toe. Четыре угла не изменили бы размеры вообще, но были бы статическими, в то время как остальные 5 частей были бы растянуты или повторены, чтобы позволить всему изображению масштабироваться соответствующим образом.
С этим объяснением и появлением CSS3 вы можете подумать, что нет оснований использовать 9 патч-образов, но имя "9 patch" является неправильным. Изображения можно нарезать на еще более мелкие куски.
9 Патч-изображения содержат индекс, частью которого является то, что добавив границу 1px к изображению. Цвета на границе определяют, является ли кусок статичным (не масштабируется), он растягивается или повторяется.
Слайд-шоу Google: https://docs.google.com/present/view?id=dc7ghz8w_34f8338rcg
См. также информацию разработчика Android о 9-патч-изображениях: http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch