Android nine-патч не распознается на устройстве
Я только что сделал девять патч
http://i41.tinypic.com/f4fk35.png
он сохраняется как граница.9.png из инструмента draw 9 patch.
в моем редакторе макета android он отображается так, как будто это будет правильный графический патч 9, растянутый, но не пиксельный.
http://i39.tinypic.com/28bsi69.png
но на реальном устройстве он просто показывает гигантское растянутое изображение, с видимыми направляющими 9patch, это выглядит очень плохо
http://i42.tinypic.com/eoshe.png
что происходит??? и как это исправить
мой xml:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/border"
android:orientation="vertical"
android:padding="35dip" >
5 ответов
вы можете найти всю необходимую информацию, как создать 9.патч здесь
ваш фон должен быть таким
Примечание: маркеры внизу и справа должны быть нарисованы как полные линии, а не отдельные точки.
редактировать
Кажется, что загрузка 9.патч здесь становится измененным и не может использоваться как 9.патч больше.
вы можете скачать функциональную версию здесь
У меня была та же проблема : все работало нормально в Eclipse, но все, где разбросано на устройстве. Я решил это, открыв PNG в Draw 9-патч инструмент. Просто откройте png и сохраните его et voila !
Это выглядит как инвалид 9.файл ptach для меня. Должны быть твердые области внизу и с правой стороны.
в крайнем случае, всякий раз, когда вам трудно получить патч 9, который будет признан таковым, я считаю, что всегда лучше всего просто сделать новый файл изображения в вашем программном обеспечении для обработки изображений, скопировать все, кроме 4 1-пиксельных границ исходного изображения, а затем вставить в новый файл изображения. Иногда независимо от того, сколько вы удаляете 4 края, устройство / эмулятор все еще не может распознать его как 9-патч, даже если (и это, вероятно, должно беспокоить команду разработчиков Android SDK) это отлично подходит 9-патч в графическом макете Eclipse.
также обратите внимание, что черные линии на правом и нижнем краях являются необязательными. Они указывают "заполнение", в частности область, в которой подходит содержимое (дочерний элемент родителя с фоном 9 патчей).
мне потребовалось несколько часов, чтобы понять, почему мой девятый патч не отображался правильно.
причина была довольно проста. Мое изображение с девятью патчами хранилось под:
/res/drawable
вместо
/res/drawable-xxx