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.патч здесь

ваш фон должен быть таким

nine patch background

Примечание: маркеры внизу и справа должны быть нарисованы как полные линии, а не отдельные точки.

редактировать
Кажется, что загрузка 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