Создание и использование 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