Почему мои образы Nine Patch не работают при компиляции?

Я пытаюсь создать пользовательские кнопки, используя значки вместо текста, и для этого требуется, чтобы свойство background каждого представления кнопки использовало изображение с девятью патчами, где все, кроме значка, можно масштабировать.

Когда я выбираю свое изображение с девятью патчами, редактор WYSIWYG отображает его как следует (http://i.imgur.com/rXYWQnf.png), но при компиляции в эмулятор или устройство изображение масштабируется как обычный .png, но с видимыми девятью строками патча (http://i.imgur.com/duwKJ10.png)

Я выполнил несколько чистых и перестроек, а также переместил jar-файл swinglabs в папку lib каталога инструментов, но все равно это не работает. Я был бы рад предоставить любую другую информацию, которая может вам понадобиться, чтобы ответить на этот вопрос, вещи становятся проклятием этого приложения!


Мои изображения были созданы с помощью инструмента draw9patch и сохранены с постфиксом .9.png с помощью инструмента


Спасибо, парни! Моя ошибка заключалась в том, что я не совсем понимал отношения масштаба / заливки из девяти патчей в верхней / левой и нижней / правой строках размером 1 пиксель, еще раз спасибо! - Сиарен Коулман


person Ciaren    schedule 22.08.2013    source источник
comment
Используйте инструмент, предоставляемый sdk draw9patch. SDK-путь / инструменты / draw9patch. Там вы сможете увидеть результат.   -  person Juangcg    schedule 22.08.2013
comment
Как вы устанавливаете возможность рисования? XML или код? Можете ли вы загрузить изображение, чтобы мы могли его проверить?   -  person Juangcg    schedule 22.08.2013


Ответы (3)


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

Проверьте ссылку, введите здесь описание ссылки

person Ravi    schedule 22.08.2013
comment
Привет, Рави, я использовал инструмент draw9patch, чтобы создать свои изображения и сохранить их как .9.png с помощью инструмента. Сначала я сохранил их в папке drawable-hdpi, а затем попробовал папку drawable-xhdpi; оба не работали. - person Ciaren; 22.08.2013
comment
я нашел вашу проблему. нижняя и правая строки используются для определения того, где должен располагаться контент в представлении, например, если вы помещаете текст на кнопку, но верхняя и левая строки определяют, какая область должна быть растянута - person Ravi; 22.08.2013
comment
так должно быть для того, чего ты хочешь достичь. Короче говоря, вы должны отметить несколько пикселей сверху, чтобы определить горизонтальное масштабирование, которое отсутствует в вашем изображении. - person Ravi; 22.08.2013

Название изображения должно выглядеть так

xxx.9.png

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

person Adam Radomski    schedule 22.08.2013
comment
Мои изображения получают это обозначение при сохранении с помощью инструмента draw_nine_patch (i.imgur.com/RcxVJPY.png), но не упоминаются как таковые в документе xml, следует ли это изменить? - person Ciaren; 22.08.2013
comment
Является ли dog_nine_path.9.png и dogbuttonimg_hd9 одним и тем же файлом? Разве вы не должны использовать @ drawable / dog_nine_path? - person Adam Radomski; 22.08.2013
comment
Ах, извините, моя ошибка, это было несовпадение при создании снимка экрана, я использую другое изображение с девятью патчами с именем dogbuttonimg_hd9, правильный снимок экрана находится здесь (i.imgur.com/h3HB59w.png) - person Ciaren; 22.08.2013

введите описание изображения здесь

пожалуйста, проверьте это изображение, чтобы вставить свой код. и простое изображение сделано в 9patch. еще раз проверьте это изображение

person dipali    schedule 22.08.2013
comment
мы не можем создать изображение с помощью значка, потому что оно всегда будет растягиваться. - person dipali; 22.08.2013
comment
по этой причине у нас есть девять изображений патчей для определения частей, которые мы хотим масштабировать, и только эти части масштабируются. Проверьте ссылку и изображение в ответе выше - person Ravi; 22.08.2013
comment
Это моя последняя конфигурация, которая работает как на устройстве, так и на редакторе, спасибо, ребята. i.imgur.com/lDnwqEX.png - person Ciaren; 22.08.2013
comment
просто чтобы прояснить линии внизу и справа, определяют область содержимого, как для текста в кнопке. Поскольку вы используете изображение в качестве фона для нижней части, вам не обязательно рисовать линии только для той части, где значок u, можно рисовать их для всей нижней и правой части, чтобы лучше понять это, поместите текст с атрибутом android: text с вашим на текущем изображении вы поймете мою точку зрения, и более того, одного пикселя более чем достаточно, чтобы обеспечить масштабирование, если это сплошной цвет - person Ravi; 22.08.2013