Я успешно создаю 9patch, который можно использовать во время работы на Android 3.0+, используя отличный инструмент, предоставленный Брайаном Гриффи (найденный здесь).
По сути, я загружаю необработанный (без патчей) графический файл из сети, а имя файла содержит вставки для крышки, которые мне нужно использовать для масштабирования изображения соответственно. Затем я использую эти значения с приведенным выше классом и применяю изображение в качестве фона для множества элементов (например, TextView
, ImageButton
, Button
, ViewGroup
и т.д.).
Это работает отлично, как вы можете видеть здесь:
Однако, запуск того же кода на Android 2.3.x дает результат:
Я просмотрел исходный код, используемый в Android, для анализа изображения 9patch (здесь и здесь), но не нашли способа заставить это работать правильно. Я пробовал все, что мог бы наброситься на него безрезультатно.
Для записи 9patch состоит из трех столбцов на каждой оси, одна фиксированная, одна растяжимая и одна фиксированная.
Здесь надеюсь, что кто-то еще решил эту проблему раньше.
Спасибо заранее.
EDIT Меня интересует только дублирование этого поведения на Android 2.3 и выше (у меня первоначально было 2.x).
EDIT # 2 Этот метод описывает именно то, что я пытаюсь сделать + Исходное изображение:
EDIT # 3 Размер изображения 22px/58px (ширина/высота), а вставки - 14/6/14/6 (верхний/левый/нижний/правый).