2011-01-06 6 views
0

Ich habe eine grundlegende Gridview, die ich eingerichtet haben, wie folgt:Ninepatch Hintergrund schrumpft Anzeigebereich von Grid

<?xml version="1.0" encoding="utf-8"?> 
    <GridView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/MainMenuGridview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:numColumns="auto_fit" 
     android:verticalSpacing="10dp" 
     android:horizontalSpacing="10dp" 
     android:columnWidth="90dp" 
     android:stretchMode="columnWidth" 
     android:gravity="center" 
    /> 

Alles funktioniert gut, bis ich einen ninepatch Hintergrund hinzufügen. Sobald ich das Hintergrundbild wie folgt hinzufügen:

<?xml version="1.0" encoding="utf-8"?> 
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/MainMenuGridview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:numColumns="auto_fit" 
    android:verticalSpacing="10dp" 
    android:horizontalSpacing="10dp" 
    android:columnWidth="90dp" 
    android:stretchMode="columnWidth" 
    android:gravity="center" 
    android:background="@drawable/mainbackground" 
/> 

Es bricht meine Gridview. Anstatt 3-4 Spalten anzuzeigen (abhängig von Bildschirmauflösung und -ausrichtung), werden alle Symbole in der Gridview in einer einzelnen Spalte in der oberen linken Ecke angezeigt. Außerdem werden immer nur zwei angezeigt und ich muss nach unten scrollen, um den Rest zu sehen. Ich vermute, dass die Gridview an die Dimensionen des Ninpatch-Center-Logos gebunden ist, aber ich bin mir nicht sicher.

Mein ninepatch hat einen kleinen Bereich in der Mitte mit einem Logo, das ich ohne Schräglage anzeigen möchte. Der Rest des Hintergrunds ist ein kleiner Farbverlauf, der den Rest des Bildschirms einnimmt. Irgendwelche Ideen, was das verursacht?

Antwort

1

Hört sich an, als ob Sie ein Padding definiert haben (die Linien am unteren und rechten Rand des Neunpatch)? Versuchen Sie, diese loszuwerden, so haben Sie nur Inhaltsbereich definiert (die Zeilen oben und links)

+0

Das ist so seltsam - ich habe keine Polsterung! keine Zeilen auf der unteren oder rechten Seite, und wenn ich das Kontrollkästchen "Inhalt anzeigen" ankreuze, wird das gesamte Ninpatch in (auf der rechten Seite) eingefärbt, um anzuzeigen, dass das gesamte Bild Inhaltsbereich ist. – JoshC13

+0

Ich habe es herausgefunden - die Polsterung wurde tatsächlich vom Neupatch verändert. Ich überprüfte, um sicherzustellen, und mein gesamter Bereich wurde als Inhaltsbereich definiert. Wenn es jedoch zu einer Dehnung kam, wurde automatisch Padding eingeführt. Ich musste nur die Eigenschaft "setPadding" verwenden und alles hat gut funktioniert! – JoshC13

0

Ich hatte ein ähnliches Problem. Leider möchte ich Padding in meinem Fall verwenden. Was ich gefunden habe, ist, dass die Reihenfolge der Methodenaufrufe auf GridLayout einen Unterschied zu machen scheint. Solange ich setPadding() nach setBackgroundResource() aufgerufen habe, ist alles in Ordnung.

Verwandte Themen