Android Draw 9-patch-tool: что означают черные линии вне фигуры - PullRequest
14 голосов
/ 20 ноября 2010

Я достаточно постарался найти в Google & Android этот вопрос. Также сделал несколько проб и ошибок, но не смог получить этот вопрос. Я изучал изображения Android "Draw Nine Patch". Я знаю одно основное, что любое изображение, которое вы обрабатываете, должно быть в формате .png (если оно уже в .9.png, оно будет игнорироваться инструментом). Однако

  1. Я не мог понять, что буквально означает «растягиваемые участки»?
  2. Что именно происходит, когда вы рисуете черные точки вне изображения .png? (панель предварительного просмотра показывает происходящие изменения, но мне неясно, как это происходит)
  3. Когда я рисую черные точки в левой / верхней части изображения, это показывает некоторые изменения в предварительном просмотре; но почему нет никакого эффекта, когда вы делаете то же самое на правой / нижней стороне изображения?
  4. Почему этот инструмент используется в основном для фона, когда мы пытаемся обработать само изображение?
  5. Я пытаюсь изменить простой button.png (приведенный в Android SDK). Всякий раз, когда я использую этот инструмент и рисую черные линии, он уменьшает размер изображения, а не «растягивает» его! Почему?
  6. Какое значение имеют следующие параметры, такие как «show lock», «show content», «Patch scale» и т. Д.

Я прошу прощения за то, что задал так много вопросов, но в онлайн-документах по Android они не очень хорошо объяснили новичкам. Если кто-то может ответить на них, он станет готовой ссылкой для всех начинающих, которые ищут этот форум.

1 Ответ

26 голосов
/ 20 ноября 2010

Растягивая патчи, вы в основном сообщаете Android, какие строки и столбцы пикселей на изображении вы хотите повторить.Когда вы растягиваете стандартное изображение, есть две возможности: во-первых, оно пропорционально масштабируется, но все еще теряет четкость из-за интерполяции;Во-вторых, он масштабируется непропорционально и теряет не только остроту, но и форму.Ниже приведен пример непропорционального масштабирования:
stretched

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


example

И ниже, это показывает результат 9-исправлений, растянутых до различных размеров.Если он увеличен, чтобы быть шире, половины изображения слева и справа от определенного растягиваемого столбца выравниваются по левому и правому краям нового размера, и определенный столбец повторяется, чтобы заполнить пространство между ними.То же самое происходит с определенными строками;если вы используете кратные значения (я не думаю, что вы можете использовать более 2 растягиваемых строк / столбцов), это просто равномерно увеличивает пространство в обоих;в этом случае я использовал его для равномерного разделения градиента по центру.

stretched images result

...