2013-02-20 8 views
6

Ich habe die folgende Textansicht, die eine einfache Navbar PNG-Datei als Hintergrundbild verwendet. Hier ist der Code:Android: Scale TextView Hintergrundbild zu passen XY

<TextView 
     android:id="@+id/titleNameText" 
     android:layout_width="wrap_content" 
     android:layout_height="50dp" 
     android:background="@drawable/navbar" 
     android:gravity="center_horizontal" 
     android:singleLine="true" 
     android:textColor="@color/WHITE" 
     android:textSize="18sp" 
     android:textStyle="bold" /> 

Das Problem besteht darin, dass auf größeren Bildschirmen die navbar nicht horizontal skaliert auf den Bildschirm passen, wie kann ich dieses Problem lösen?

Antwort

5

im Android: Set Hintergrund zu einem TextView (in diesem Zusammenhang) nicht das Attribut android:scaleType="fitXY" (oder einen anderen Wert für diese Angelegenheit). Dieses Attribut findet sich unter ImageViews und ImageButtons.

Das gesagt, würde ich 2 Vorschläge für Ihre aktuelle Situation machen.

  1. Ändern Sie den android:layout_width="wrap_content" zu android:layout_width="fill_parent". Natürlich wird die TextView-Zeichenkette die Breite der TextView berücksichtigen. Ich spekuliere nur (kein Screenshot in der OP), dass der Inhalt auf einem größeren Display nicht breit genug ist, um die Breite zu füllen. Wenn Sie dies nicht bereits tun, verwenden Sie entweder Shape Drawable XML oder 9-patch. Dies gewährleistet eine gleichbleibende Qualität über mehrere Bildschirmgrößen hinweg.

Wenn ich völlig falsch bin, schreibe einen Screenshot. Das wird die Dinge klarer machen. ;-)

0

Sie müssen android:layout_height="50dp" ändern, um view 'highier' zu machen, versuchen Sie zum Beispiel match_parent statt 50dp

0

Sie sollten nine patch für Hintergrundbilder verwenden. Hoffe das wird dir helfen.

4

Setzen Sie einen Imageview hinter dem Textview und es ist Größe entspricht die Größe des Textview mit Android: align ...:

<RelativeLayout android:layout_width="wrap_content" 
       android:layout_height="wrap_content"> 
    <ImageView android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_alignBottom="@id/titleNameText" 
       android:layout_alignLeft="@id/titleNameText" 
       android:layout_alignRight="@id/titleNameText" 
       android:layout_alignTop="@id/titleNameText" 
       android:scaleType="fitXY" 
       android:src="@drawable/navbar"/> 

    <TextView 
     android:id="@+id/titleNameText" 
     android:layout_width="wrap_content" 
     android:layout_height="50dp" 
     android:background="@drawable/navbar" 
     android:gravity="center_horizontal" 
     android:singleLine="true" 
     android:textColor="@color/WHITE" 
     android:textSize="18sp" 
     android:textStyle="bold"/> 
</RelativeLayout>