2010-12-27 10 views
0

Ich habe diesen Layout-Code, die ich dachte, waren richtig:Wie richtige Ränder eingestellt

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="64dip" 
    android:background="@drawable/title_background"> 

    <ImageView 
     android:layout_width="48dip" 
     android:layout_height="48dip" 
     android:layout_margin="8dip" 
     android:src="@drawable/title_icon" /> 

    <ImageView 
     android:layout_width="128dip" 
     android:layout_height="32dip" 
     android:layout_margin="16dip" 
     android:src="@drawable/title_text" /> 

</LinearLayout> 

Das Linearlayout eine Höhe von 64dip hat und das erste Image hat eine Höhe von 48dip. Aus der Mathematik, die ich vor langer Zeit gelernt habe, würde eine Marge von 8 Dip perfekt passen. Aber es ist nicht so, wie meine ImageViews unten abgeschnitten werden. Dies ist für eine benutzerdefinierte Titelleiste und ich habe die android: windowTitleSize auf 64Dip im Thema eingestellt.

Gibt es eine Art verstecktes Padding auf der Titelleiste? Und wenn ja, wie groß ist es?

+0

könnte Hierarchie Ansicht von irgendeiner Hilfe sein? (Und was ist mit Bildskalierung? ...) – bigstones

+0

Ich wünsche. Seit dem letzten Update funktioniert keines der Tools richtig. Nahm mich etwas Zeit, um Eclipse kaum laufen zu lassen. Danke aber. Ich habe keine Probleme, es schön aussehen zu lassen, ich wollte nur die genauen Maße. Ich werde es auf die harte Tour machen :-) – Espen

Antwort

2

Nachdem es die alte Art und Weise Art und Weise Testen herausgefunden ich, dass die "unbekannte" padding 8DIP rundum ist. Wenn das ein fester Wert ist, weiß ich nicht. Es passt perfekt zu meinem 48dip ImageView, also ist es mit einem Rand von 0dip zentriert. Das zweite ImageView benötigt einen Rand von 8 Dip, um von oben nach unten zentriert zu sein.

Benutzerdefinierte Titellegeldokumentation ist sehr selten, so weit ich jetzt komme.

EDIT:

Das Hintergrundbild I für die Titelleiste erstellt ist ein 9-Patch-Bild mit einem Inhaltsbereich. Dies ist die "unbekannte" Auffüllung. Um es zusammenzufassen - eine benutzerdefinierte Titelleiste hat keine versteckte Auffüllung, aber wenn man ein 9-faches Hintergrundbild mit einem Inhaltsbereich verwendet, wäre die Auffüllung das, was außerhalb dieses Inhaltsbereichs liegt. Im Grunde ist alles so, wie es mit einem 9-Patch-Bild als Hintergrund verwendet werden sollte ...

0

Versuchen Sie folgendes:

<ImageView 
     android:layout_width="48dip" 
     android:layout_height="48dip" 
     android:layout_margin="8dip" 
     android:src="@drawable/title_icon" 
     android:scaleType="center" 
     android:adjustViewBounds="true"/> 

/>

+0

Das Problem ist nicht, es zu zentrieren. Das Problem ist, dass ich wissen möchte, was das Padding für eine benutzerdefinierte Titelleiste ist. Die Höhe des ImageView ist 48dip, dann mit einem Rand von 2x8dip plus dem unbekannten Padding - die Summe ist mehr als die 64dip die Höhe meines LinearLayout ist. Ich möchte also nur wissen, was das unbekannte Padding ist, damit ich den richtigen Rand einstellen kann, ohne es erraten zu müssen. – Espen