Инструмент Android Draw 9-patch: каково значение черных линий вне фигуры

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

  • Я не мог понять, что это буквально означает "растягивающиеся патчи"?
  • Что именно происходит, когда вы рисуете черные точки вне изображения .png? (в панели предварительного просмотра отображаются изменения, но я не понимаю, как это делается)
  • Когда я рисую черные точки в левой/верхней сторонах изображения, он показывает некоторые изменения в предварительном просмотре; но почему нет эффекта, когда вы делаете то же самое на правой/нижней стороне изображения?
  • Почему этот инструмент используется в основном для фона, когда мы пытаемся обработать на самом изображении?
  • Я пытаюсь изменить простую кнопку button.png(указанную в android sdk). Всякий раз, когда я использую этот инструмент и рисую черные линии, он уменьшает размер изображения, а не "растягивает" его! Почему?
  • Каково значение приведенных ниже опций, например: "show lock", "show content", "Scatch scale" и т.д.?

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

Ответы

Ответ 1

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

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


example

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

stretched images result