2013-02-07 3 views
5

Ich verwende ein neun Patch-Bild als Zeichen für ein Element Element eines Wählers. Die neun Patch-Bild ist hier:9 Patch-Bild ist an den falschen Positionen skaliert

9 patch image

Das Bild, das schließlich gerendert wird ist dies (Emulator & Gerät Screenshot, haben beide Geräteauflösungen> MDPI):

resulting rendered image

Wie Sie Sie können sehen, dass es außerhalb des dehnbaren Bereichs skaliert wurde (wie in der 9-Patch-Datei definiert), der dunklere grüne Balken ist viel dicker als er sein sollte. Warum ist das und kann es vermieden werden? Das Werkzeug draw9patch skaliert dieses Bild korrekt. Hat es damit zu tun, dass Android versucht, physische Abmessungen auf Geräten mit hoher Auflösung zu erhalten?

+0

Lassen Sie uns den Code sehen, wo Sie das Bild ziehen. – Caerulius

Antwort

6

Liefern Sie nur eine mdpi-Version des Bildes?

Android skaliert alle Bilder, die nicht in der richtigen Pixeldichte verfügbar sind. Dies geschieht, bevor das Bild über 9patch skaliert wird.

Dies würde bedeuten, dass Ihr Bild auf hdpi skaliert und dann skaliert wird, um den Inhalt anzupassen.

Um dies zu beheben, müssen Sie hdpi und xhdpi Versionen Ihres Bildes zur Verfügung stellen. 9patch soll nicht auf unterschiedliche Pixeldichten und ziemlich unterschiedliche Inhalte/Bildschirmgrößen zielen.

+0

Es gibt nur eine Version (in den ziehbaren Ordner legen). Es scheint also so zu sein, dass der von Ihnen beschriebene Prozess das Problem, dem ich gegenübersehe, erklärt. Schade, aber ich könnte vermeiden, Bilder für all diese unterschiedlichen physikalischen Auflösungen zu erstellen ... – user462982

3

checkte ich Ihre 9-Patch aus:

enter image description here

Warum haben Sie Ihre Farbe nicht verwendet Grenzen weiß? Es sollte transparent sein. dieser Weil es nicht als 9patch erkannt wird:

enter image description here

+0

Weiße Ränder sind meine persönliche Best Practice, da sie vermeidet, dass fast transparente Pixel an den äußeren Rändern leben. Bis jetzt hatte ich nie Probleme damit. Und ich habe das nochmal überprüft: Die roten Streifen (was immer sie bedeuten) kommen auch mit völlig transparenten Rändern vor. – user462982

Verwandte Themen