Добрый день, Хабражитель!
Уверен с форматом nine-patch уже все давным-давно знакомы, вероятно даже не раз пользовались им в своих Android-проектах (а может даже и где-то ещё). Также о нём чуть менее года назад skkap писал небольшую статью о том, что это за формат, и «с чем его едят». Также он описал инструмент, предлагаемый для быстрого редактирования этих самых файлов.
Собственно, прошёл уже почти год с того момента и я, опять наткнувшись на ту статью и вспомнив жалобы знакомых на неудобство этого самого «инструмента», решил посмотреть нет ли каких других вариантов и, к моему большому удивлению, я таковых не нашёл. Вероятно потому, что формат сам из себя ничего сложного и специфичного не представляет (при желании nine-patch файлы можно редактировать почти в любом графическом редакторе поддерживающем png) и тем более уже есть готовый инструмент (пусть и не самый удобный).
Тут я и решил лично взяться за дело…
Итак, за несколько дней на основе своей же разрабатываемой библиотеки мне удалось добиться достаточно неплохих, как мне кажется, результатов — ими бы я и хотел поделиться с вами. Пусть ещё не сглажены все углы, есть некоторые недочёты и, возможно, баги (ну а где их нет), но всё же…
Собственно, само небольшое приложение-редактор выглядит вот так:
Несколько преимуществ по сравнению с ранее упомянутой «древней» тулзой:
Собственно, при работе с этим редактором вам придётся иметь дело с несколькими его частями…
Основной тулбар
Кстати, по умолчанию на редактирование открывается вот это изображение:
Собственно, приложение:
Запускаемый jar
Естественно, для запуска вам потребуется установленная на вашей ОС jre.
Работать приложение должно на любой ОС, где доступны версии JDK 1.6.20+ (или OpenJDK).
Надеюсь тем, кто часто работает с nine-patch файлами этот редактор поможет облегчить жизнь :)
Естественно, редактор будет и далее понемногу развиваться вместе с библиотекой, если будут появляться дельные предложения по его усовершенствованию.
Кстати о птицах — сама Web Look and Feel библиотека, а также данный редактор написанный на её основе распространяются под лицензией GPLv3 и имеют полностью открытый исходный код.
Так как более новая версия библиотеки, на которой основан данный редактор ещё не выпущена — загрузить исходники на данный момент можно напрямую отсюда:
http://weblookandfeel.com/downloads/ninepatch-sources.zip
А дистрибутив библиотеки без исходников отсюда:
http://weblookandfeel.com/downloads/ninepatch.jar
Также я рад буду выслушать любые комментарии и предложения и…
Спасибо за ваше внимание!
После нескольких комментариев, а также нахождения пары багов я внёс небольшие изменения в библиотеку и редактор, собственно что было изменено:
Загрузить бинарники и исходники можно по старым ссылкам — они уже обновлены:
Запускаемый jar | Исходный код | Чистая библиотека
Уверен с форматом nine-patch уже все давным-давно знакомы, вероятно даже не раз пользовались им в своих Android-проектах (а может даже и где-то ещё). Также о нём чуть менее года назад skkap писал небольшую статью о том, что это за формат, и «с чем его едят». Также он описал инструмент, предлагаемый для быстрого редактирования этих самых файлов.
Собственно, прошёл уже почти год с того момента и я, опять наткнувшись на ту статью и вспомнив жалобы знакомых на неудобство этого самого «инструмента», решил посмотреть нет ли каких других вариантов и, к моему большому удивлению, я таковых не нашёл. Вероятно потому, что формат сам из себя ничего сложного и специфичного не представляет (при желании nine-patch файлы можно редактировать почти в любом графическом редакторе поддерживающем png) и тем более уже есть готовый инструмент (пусть и не самый удобный).
Тут я и решил лично взяться за дело…
Первые наброски
Итак, за несколько дней на основе своей же разрабатываемой библиотеки мне удалось добиться достаточно неплохих, как мне кажется, результатов — ими бы я и хотел поделиться с вами. Пусть ещё не сглажены все углы, есть некоторые недочёты и, возможно, баги (ну а где их нет), но всё же…
Собственно, само небольшое приложение-редактор выглядит вот так:
Несколько преимуществ по сравнению с ранее упомянутой «древней» тулзой:
- Возможность быстрого изменения nine-patch данных простым передвижением/изменением направляющих и областей
- Отображение пиксельной линейки и расстояний между отдельными направляющими на области
- Кастомизируемое превью итогового файла динамически обновляемое при редактировании
- Распознавание nine-patch данных на изображениях не имеющих в имени ".9", а также возможность загрузки простых изображений для быстрой конвертации в nine-patch формат
- Возможность загрузки любых форматов изображений, поддерживаемых в J2SE, помимо png
Немного описания...
Собственно, при работе с этим редактором вам придётся иметь дело с несколькими его частями…
Основной тулбар
- Открытие изображения (можно также просто перетащить любой файл прямо на редактор)
- Быстрое сохранение ранее открытого изображения
- Сохранение nine-patch изображения в новое место
- Диалог предпросмотра изображения (о нём далее)
- Отображать ли расстояние между направляющими
- Показывать ли линейку на области редактирования
- Показывать ли область содержимого
- Показывать ли растягиваемые области
- Для zoom'а области можно использовать сочетание Ctrl (или Alt) + Mouse wheel
- Перемещая направляющие можно быстро редактировать области (в допустимых границах)
- Перетаскивать области можно за чёрные линии по краям, либо за области внутри изображения
- Добавлять новые растягиваемые области можно зажимая левую кнопку мыши слева или сверху от изображения
- Стирать растягиваемые области можно зажимая правую кнопку мыши слева или сверху от изображения
- Передвигать область (если появляется скролл) можно зажимая среднюю кнопку мыши (колесо)
- За сайзеры вокруг изображения можно изменить его размер
- На верхнем тулбаре можно настроить отображаемый в изображении текст и иконку
- На нижнем тулбаре можно настроить фон под изображением
- Сжимает изображение до минимального размера с учётом содержимого
Кстати, по умолчанию на редактирование открывается вот это изображение:
Собственно, приложение:
Запускаемый jar
Естественно, для запуска вам потребуется установленная на вашей ОС jre.
Работать приложение должно на любой ОС, где доступны версии JDK 1.6.20+ (или OpenJDK).
В заключении
Надеюсь тем, кто часто работает с nine-patch файлами этот редактор поможет облегчить жизнь :)
Естественно, редактор будет и далее понемногу развиваться вместе с библиотекой, если будут появляться дельные предложения по его усовершенствованию.
Кстати о птицах — сама Web Look and Feel библиотека, а также данный редактор написанный на её основе распространяются под лицензией GPLv3 и имеют полностью открытый исходный код.
Так как более новая версия библиотеки, на которой основан данный редактор ещё не выпущена — загрузить исходники на данный момент можно напрямую отсюда:
http://weblookandfeel.com/downloads/ninepatch-sources.zip
А дистрибутив библиотеки без исходников отсюда:
http://weblookandfeel.com/downloads/ninepatch.jar
Также я рад буду выслушать любые комментарии и предложения и…
Спасибо за ваше внимание!
# Update
После нескольких комментариев, а также нахождения пары багов я внёс небольшие изменения в библиотеку и редактор, собственно что было изменено:
- Объединённый с редактором предпросмотр итогового 9-patch изображения
- Возможность выбора цвета текста в предпросмотре
- Возможность копирования 9-patch данных из одного редактора в другой
- Сохранение всех настроек редактора при закрытии
- Возможность мультистрокового текста в превью ("\n" или ";" разделяют строки)
- Привязка перемещения диалога превью к диалогу редактора
- Добавлен слайдер и кнопки для zoom'а области на нижний тулбар
- В имена файлов автоматически добавляется пометка ".9" при сохранении, если таковой нет
Загрузить бинарники и исходники можно по старым ссылкам — они уже обновлены:
Запускаемый jar | Исходный код | Чистая библиотека