2012-05-18 1 views
13

Предоставленная утилита выглядит плохо, например, она не позволяет делать «Сохранить как» или рисовать несколько состояний кнопок с аналогичной нарезкой.Как создать 9 патчей в Photoshop? Что такое кодировка 9.png?

Можно ли рисовать 9.png в фотошопе? Я заметил, что сгенерированный png просто содержит черные пиксели во внешнем краю. Это то, что маркирует срезы?

Что делать, если черные пиксели присутствуют в двух противоположных краях, как это работает?

Наружные края отрезаны при отображении на андроиде?

ответ

45

Да, я делаю все свои девять патчей в Photoshop. Ниже приведены основные правила для создания 9-патч:

  1. внешняя граница 1px может содержать только 100% черный (RGB 0, 0, 0) или полностью прозрачными.

  2. Черные пиксели для верхнего края и левого поля определяют точки растяжения и должны быть сплошной линией, одной точкой или двумя отдельными точками. Если определены две точки, они будут равномерно растягиваться между ними.

  3. Черные пиксели для нижнего поля и правого края определяют область содержимого. Эти пиксели должны быть одной непрерывной линией.

  4. При сохранении обязательно добавьте удлинитель .9.png.

Надеюсь, это поможет. :)

EDIT: И да, они не будут отображаться при использовании в ваших макетах при условии, что они правильно отформатированы, и вы сохранили его как .9.png.

enter image description here

enter image description here

Итак, топ будет простой девять патч для блесны. линии поперек и вниз во втором изображении показывают, какие строки/столбцы пикселей будут дублироваться. Синий прямоугольник на втором изображении показывает область, в которой Android позволит размещать контент. Таким образом, текст, например, просто будет завернут, чтобы остаться внутри этого прямоугольника.

+0

И в чем разница между площадью участка и областью содержимого? Я полагаю, что 9 патчей содержат 3x3 = 9 срезов, где центральный - для содержимого и растяжения, 4 края растягиваются 2 по вертикали и 2 по горизонтали, а 4 угла фиксированы. Таким образом, только центральный срез должен быть определен, поэтому достаточно только двух черных линий. Для чего нужны еще двое? –

+0

Область растяжения определяет, какие строки и столбцы будут повторяться. То есть, если вы выберете пиксель в одном из верхних столбцов, то если девятый патч должен быть увеличен, он просто расширит этот столбец (дублирует этот столбец пикселей) и распространит две стороны, окружающие его. То же самое со строками. Область содержимого - считайте это определяющим дополнением. Если у вас есть часть девяти патчей, которые не должны содержать контент (обычно текст), вы не будете размещать пиксели в этой области. Я постараюсь привести графический пример в ближайшее время. – kcoppock

+0

Похоже, я получил его –