Android девяти патч не распознается на устройстве - PullRequest
6 голосов
/ 12 декабря 2011

Я только что сделал девять патчей

http://i41.tinypic.com/f4fk35.png

сохраняется как border.9.png из инструмента патча draw 9.

в моем редакторе макетов для Android, он выглядит так, как будто это будет правильная графика с 9 патчами, растянутая, но не пиксельная.

http://i39.tinypic.com/28bsi69.png

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

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 ]

10 голосов
/ 20 марта 2012

У меня просто была та же проблема: все работало нормально в Eclipse, но все там, где растягивалось на устройстве.Я решил это, открыв PNG в Draw 9-patch tool .Просто откройте png и сохраните его и вуаля!

6 голосов
/ 13 декабря 2011

Вы можете найти всю необходимую информацию о том, как создать 9.patch здесь

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

nine patch background

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

Редактировать
Похоже, что загрузка 9.patch здесь изменяется, ибольше не может использоваться в качестве 9.patch.
Функциональную версию можно загрузить с здесь

4 голосов
/ 13 декабря 2011

Это похоже на неверный файл 9.ptach для меня.Должны быть сплошные области внизу и справа.

3 голосов
/ 13 января 2012

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

Также обратите внимание, что черные линии на правом и нижнем краях не обязательны.Они задают «отступы», в частности регион, в который помещается содержимое (дочерний элемент родителя с фоном из 9 патчей).

1 голос
/ 06 июня 2012

Мне потребовалось несколько часов, чтобы понять, почему мой девять патчей не рендерится правильно.

Причина была довольно проста.Изображение моего девяти патчей было сохранено в:

/res/drawable

вместо

/res/drawable-xxx
...