2012-12-30 3 views
6

Wenn ein 9-Patch-Bild als Hintergrund verwendet wird, scheint die Auffüllung immer vom 9-Patch-Image abgeleitet zu sein. Auch wenn Sie keinen Padding-Balken im 9-Patch-Image verwenden, wird das Zeichen verwendet.Android Override 9-Patch-Auffüllung in XML auf einer Seite

Wenn die Fülllinien nicht enthalten sind, verwendet Android die linke und obere Zeile, um diesen Zeichenbereich zu definieren.

http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

Allerdings können Sie es in der XML außer Kraft setzen von Android mit: padding = 0DP oder = Xdp. Leider Android: paddingLeft = Xdp funktioniert nicht. Sie sind also mit einer einheitlichen Polsterung festgefahren. Ich habe versucht, dies zu tun:

android:padding="2dp" 
    android:paddingLeft="20dp" 

Es hatte keinen Einfluss auf die Polsterung auf der linken Seite. Wenn Sie sie in einer Datei "styles.xml" ablegen, werden ähnliche Ergebnisse erzielt.

Der einzige Hack, den ich gesehen habe, um dies zu umgehen, war, die Auffüllung in Code zu setzen.

Antwort

7

if (android: padding dargestellt) es hat Vorrang vor allen anderen Werten padding else if (android: paddingXXX präsentiert) überschreibt es bg ziehbar paddingXXX (XXX = Links | Rechts | Oben | Unten) else if (Blick hat ziehbar bg Polsterung = "2dp":) padding Werte aus diesem ziehbar (neun~~POS=TRUNC Patch wird in Ihrem Fall) sonst Standard-Polsterung (Null in der Regel)

So tun keinen Gebrauch android angewendet werden verwendet werden. padding-Eigenschaft überschreibt alles. Verwenden Sie einfach paddingLeft = 20dp, paddingTop = 2dp, paddingRight = 2dp, paddingBottom = 2dp.

Oder Sie können paddingLeft = 20dp setzen und andere Füllwerte werden von bg drawable übernommen.

+2

Danke, ich dachte Einstellung Stile würde wie CSS arbeiten. Dies hat das Problem gelöst. Ein Hinweis auf Frage, aber wenn ich View.setBackgroundResource (9patch_background) verwenden; Der 9patch_background überschreibt das über XML festgelegte Padding. Es gibt eine Möglichkeit, Hintergrund festzulegen, ohne das Padding in XML zu überschreiben. – pt123

+1

sollten Sie Padding-Werte erhalten, Hintergrund festlegen, alte Padding-Werte zurücksetzen. – Leonidos