2011-01-31 4 views
9

im próbuje utworzyć tosty jak sterowanie oparte na TextView i znalazłem bardzo dziwne zachowanie TextView w przypadku, gdy mają dziewięć łat rozciągliwej jako tło.Dopełnienie arround TextView z dziewięcioma poprawkami tle nie mają efekt wizualny

Jest to definicja xml:

<by.pplware.view.QuickInfo 
    android:id="@+id/quickinfo" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:padding="20px" 
    android:textSize="20px" 
    android:textStyle="bold" 
    android:typeface="serif" 
    android:background="#FFFF0000" 
/> 

to TextView z kolorowym tle: enter image description here

to TextView z rozciągliwej tle: enter image description here

jak rozumiem, w przypadku ninepatch tło android robi wyściółkę przezroczystą i używaj rysowania tylko jako tło dla tekstu. Ale chcę dołączyć dopełnienie do obszaru pokrytego tłem w ninepatch.

Czy istnieje rozwiązanie tego problemu?

Odpowiedz

26

Spróbuj każdy z nich:

  1. Ustaw ninepatch tło poprzez "android: tło" właściwości XML zamiast programowo; to współpracuje z dopełnieniem zdefiniowanym przez XML.
  2. Jeśli trzeba ustawić tło programowo, spróbuj ponownie ustawić dopełnienie po ustawieniu tła (jeśli ustawisz wyściółka następnie ustawić tło, będę zakładać padding zdefiniowaną w ninepatch sama nadpisuje go).
  3. Unikaj całą sprawę i po prostu ustawić obszary wypełniające w swojej samego obrazu ninepatch (to prawy i dolny czarne słupki).
+1

Dzięki za komentarzu - 1 i 2 naprawdę pomaga. –

+3

3 najlepiej powiedzieć – kishu27

+1

Pracowałem nad tym, zapisując wartości dopełnienia przed ustawieniem dziewięciu poprawek, a następnie zresetować wypełnienie zgodnie z 2 powyżej. –