2013-02-20 16 views
6

Mam następujący tekst, który wykorzystuje prosty plik png navbara jako obraz tła. Oto kod:Android: Skaluj obraz tła w tekście View Fit 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" /> 

Problemem jest to, że na większych ekranach pasek nawigacyjny nie skaluje się w poziomie w celu dopasowania do ekranu, jak mogę rozwiązać ten problem?

Odpowiedz

5

Android: tle zestaw do TextView (w tym kontekście) nie ma atrybutu android:scaleType="fitXY" (lub dowolna inna wartość). Ten atrybut znajduje się na ImageViews i ImageButtons.

Powiedziawszy to, zrobiłbym 2 sugestie dotyczące twojej obecnej sytuacji.

  1. Zmienić android:layout_width="wrap_content" do android:layout_width="fill_parent". Oczywiście zestaw do przeciągnięcia do TextView będzie szanował szerokość TextView. Po prostu spekuluję (bez zrzutu ekranu w OP), że zawartość nie jest wystarczająco szeroka na większym ekranie, aby wypełnić szerokość.

  2. Jeśli nie robisz tego już, użyj albo Shape Drawable XML lub 9-patch. Zapewni to stałą jakość na wielu ekranach.

Jeśli całkowicie się mylę, opublikuj zrzut ekranu. To wszystko wyjaśni. ;-)

0

Trzeba zmodyfikować android:layout_height="50dp" w celu uczynienia widok „highier”, spróbuj na przykład match_parent zamiast 50dp

4

Umieścić ImageView za TextView i zrobić to wielkość odpowiada wielkości TextView użyciu android: wyrównać ...:

<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>