2011-01-31 26 views
9

Im cố gắng tạo bánh mì nướng như điều khiển dựa trên textview, và tôi thấy hành vi rất lạ của textview trong trường hợp khi nó có chín bản vá có thể vẽ được làm nền.Padding arround textview với 9 nền bản vá không có hiệu ứng trực quan

Đây là định nghĩa 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" 
/> 

đây là TextView với màu nền: enter image description here

đây là TextView với nền drawable: enter image description here

Như tôi hiểu, trong trường hợp ninepatch nền android làm cho padding trong suốt và sử dụng drawable chỉ làm nền cho văn bản. Nhưng tôi muốn bao gồm padding vào khu vực được bảo hiểm với nền ninepatch.

Có giải pháp nào cho vấn đề này không?

Trả lời

26

Hãy thử bất kỳ trong số này:

  1. Đặt ninepatch nền thông qua "android: background" tài sản xml thay vì programatically; điều này hợp tác với đệm được xác định bằng XML.
  2. Nếu bạn cần đặt nền theo chương trình, hãy thử đặt lại phần đệm sau khi đặt nền (nếu bạn đặt phần đệm sau đó đặt nền, tôi giả định rằng phần đệm được xác định trong chính 9patch sẽ ghi đè lên).
  3. Tránh toàn bộ vấn đề và chỉ đặt khu vực đệm trong ảnh ninepatch của chính bạn (đó là thanh màu đen bên phải và dưới cùng).
+1

Cảm ơn bạn đã hài lòng - 1 và 2 thực sự giúp ích. –

+3

3 là tốt nhất tôi muốn nói – kishu27

+1

Tôi làm việc xung quanh điều này bằng cách tiết kiệm các giá trị padding trước khi thiết lập các bản vá chín và sau đó đặt lại padding theo 2 ở trên. –

Các vấn đề liên quan