Pull to refresh
0
ALEE Software
ПО стандартизации и управления качеством

Улучшенный 9-patch редактор

Reading time4 min
Views45K
Добрый день, Хабражитель!

imageУверен с форматом nine-patch уже все давным-давно знакомы, вероятно даже не раз пользовались им в своих Android-проектах (а может даже и где-то ещё). Также о нём чуть менее года назад skkap писал небольшую статью о том, что это за формат, и «с чем его едят». Также он описал инструмент, предлагаемый для быстрого редактирования этих самых файлов.

Собственно, прошёл уже почти год с того момента и я, опять наткнувшись на ту статью и вспомнив жалобы знакомых на неудобство этого самого «инструмента», решил посмотреть нет ли каких других вариантов и, к моему большому удивлению, я таковых не нашёл. Вероятно потому, что формат сам из себя ничего сложного и специфичного не представляет (при желании nine-patch файлы можно редактировать почти в любом графическом редакторе поддерживающем png) и тем более уже есть готовый инструмент (пусть и не самый удобный).

Тут я и решил лично взяться за дело…

Первые наброски


Итак, за несколько дней на основе своей же разрабатываемой библиотеки мне удалось добиться достаточно неплохих, как мне кажется, результатов — ими бы я и хотел поделиться с вами. Пусть ещё не сглажены все углы, есть некоторые недочёты и, возможно, баги (ну а где их нет), но всё же…

Собственно, само небольшое приложение-редактор выглядит вот так:
image

Несколько преимуществ по сравнению с ранее упомянутой «древней» тулзой:
  • Возможность быстрого изменения nine-patch данных простым передвижением/изменением направляющих и областей
  • Отображение пиксельной линейки и расстояний между отдельными направляющими на области
  • Кастомизируемое превью итогового файла динамически обновляемое при редактировании
  • Распознавание nine-patch данных на изображениях не имеющих в имени ".9", а также возможность загрузки простых изображений для быстрой конвертации в nine-patch формат
  • Возможность загрузки любых форматов изображений, поддерживаемых в J2SE, помимо png
Это плюсы, касающиеся исключительно редактирования nine-patch файлов в готовом визуальном редакторе. Сам по себе запускаемый jar-файл приложения можно использовать в качестве подключаемой библиотеки для парсинга nine-patch изображений, встраивания редактора в свои собственные приложения на Java, стилизации компонентов и многого другого, но не буду распыляться — конкретно об этом я немного позже расскажу в отдельной статье в Java-блоге всем кто интересуется.

Немного описания...


Собственно, при работе с этим редактором вам придётся иметь дело с несколькими его частями…

Основной тулбар
image
  • image Открытие изображения (можно также просто перетащить любой файл прямо на редактор)
  • image Быстрое сохранение ранее открытого изображения
  • image Сохранение nine-patch изображения в новое место
  • image Диалог предпросмотра изображения (о нём далее)
  • image Отображать ли расстояние между направляющими
  • image Показывать ли линейку на области редактирования
  • image Показывать ли область содержимого
  • image Показывать ли растягиваемые области
Редактор
image
  • Для zoom'а области можно использовать сочетание Ctrl (или Alt) + Mouse wheel
  • Перемещая направляющие можно быстро редактировать области (в допустимых границах)
  • Перетаскивать области можно за чёрные линии по краям, либо за области внутри изображения
  • Добавлять новые растягиваемые области можно зажимая левую кнопку мыши слева или сверху от изображения
  • Стирать растягиваемые области можно зажимая правую кнопку мыши слева или сверху от изображения
  • Передвигать область (если появляется скролл) можно зажимая среднюю кнопку мыши (колесо)
Предпросмотр изображения
image
  • За сайзеры вокруг изображения можно изменить его размер
  • На верхнем тулбаре можно настроить отображаемый в изображении текст и иконку
  • На нижнем тулбаре можно настроить фон под изображением
  • image Сжимает изображение до минимального размера с учётом содержимого
В общем и целом — это всё. Остальное вы можете и сами посмотреть/пощупать, запустив приложение у себя.

Кстати, по умолчанию на редактирование открывается вот это изображение:
image

Собственно, приложение:
Запускаемый jar
imageimageimage


Естественно, для запуска вам потребуется установленная на вашей ОС 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" при сохранении, если таковой нет
Также я в курсе последней оставшейся проблемы — некорректной работы выборщика файлов. Эта проблема будет устранена немного позднее, вместе с выходом очередной версии Web Look and Feel библиотеки.

Загрузить бинарники и исходники можно по старым ссылкам — они уже обновлены:
Запускаемый jar | Исходный код | Чистая библиотека
Tags:
Hubs:
Total votes 52: ↑49 and ↓3+46
Comments49

Articles

Information

Website
www.alee.ru
Registered
Founded
Employees
31–50 employees
Location
Россия