2012-05-18 10 views
13

Bereitgestellte Dienstprogramm sieht schlecht aus, zum Beispiel erlaubt es nicht, "Speichern unter" zu machen, oder um mehrere Tastenzustände mit ähnlichem Slicing zu zeichnen.Wie erstellt man 9 Patch in Photoshop? Was ist die 9.png-Codierung?

Ist es möglich, 9.png in Photoshop zu zeichnen? Ich habe bemerkt, dass generiertes PNG nur schwarze Pixel in der äußeren Kante enthält. Ist das was die Scheiben markiert?

Was ist, wenn schwarze Pixel in zwei gegenüberliegenden Kanten vorhanden sind, wie funktioniert das?

Sind die äußeren Ränder abgeschnitten, wenn sie auf Android angezeigt werden?

Antwort

45

Ja, ich mache alle meine neun Patches in Photoshop. Hier sind die grundlegenden Regeln für die Erstellung einer 9-Patch:

  1. Der äußere Rand 1px nur 100% Schwarz enthalten können (RGB 0, 0, 0) oder vollständig transparent.

  2. Die schwarzen Pixel für den oberen Rand und den linken Rand definieren die Streckungspunkte und müssen entweder eine durchgezogene Linie, ein einzelner Punkt oder zwei getrennte Punkte sein. Wenn zwei Punkte definiert sind, wird es sich gleichmäßig zwischen den beiden Punkten erstrecken.

  3. Die schwarzen Pixel für den unteren Rand und rechten Rand definieren den Inhaltsbereich. Diese Pixel müssen eine zusammenhängende Linie sein.

  4. Beim Speichern unbedingt die Erweiterung .9.png anhängen.

Hoffe, das hilft. :)

EDIT: Und ja, diese werden nicht angezeigt, wenn in Ihren Layouts verwendet, vorausgesetzt, es ist richtig formatiert und Sie haben es als .9.png gespeichert.

enter image description here

enter image description here

Okay, so würde die Spitze ein einfaches neun Patch für einen Spinner sein. Die Linien im zweiten Bild zeigen an, welche Zeilen/Spalten von Pixeln dupliziert werden. Das blaue Rechteck im zweiten Bild zeigt den Bereich, in dem Android Inhalte zulassen würde. So würde beispielsweise Text einfach umgebrochen, um in diesem Rechteck zu bleiben.

+0

Und was ist der Unterschied zwischen Stretch-Bereich und Inhaltsbereich? Ich nehme an, dass 9 Patch 3x3 = 9 Scheiben enthält, wobei die mittlere für Inhalt und Dehnung ist, 4 Kanten sind vertikal und 2 horizontal gestreckt und 4 Ecken sind fixiert. Also, nur zentrale Scheibe es zu definieren, so dass nur zwei schwarze Linien ausreichen. Für welche anderen zwei? –

+0

Der Stretchbereich legt fest, welche Zeilen und Spalten wiederholt werden. Das heißt, wenn Sie ein Pixel auf einer der oberen Spalten auswählen, dann muss die neune Spalte, wenn sie breiter gemacht wird, einfach diese Spalte erweitern (diese Pixelspalte duplizieren) und die zwei Seiten, die sie umgeben, aufspreizen. Gleiches mit den Zeilen. Der Inhaltsbereich - denke an ihn als definierendes Padding. Wenn Sie einen Teil des neun Patches haben, der keinen Inhalt enthalten sollte (normalerweise Text), würden Sie keine Pixel in diesem Bereich platzieren. Ich werde versuchen, ein grafisches Beispiel in Kürze zu erstellen. – kcoppock

+0

Sieht so aus, als hätte ich es bekommen –