2012-08-30 24 views
9

Tôi muốn tạo một nút. Nút này chứa một chữ cái có kích thước 22 pixel và một số chữ cái ở bên phải của nó với kích thước 16 pixel.Các văn bản khác nhau được hiển thị bằng một nút

Như thế này:
enter image description here

Làm thế nào tôi có thể đạt được điều này?

Tại thời điểm này tôi có điều này:

private void setText(Button btn, String text, String underText) { 
    Spannable span = new SpannableString(text + "\n" + underText); 

    btn.setText(span); 
} 
+0

Khóa tại này http://stackoverflow.com/questions/1529068/is -it-possible-to-have-multiple-style-bên trong-một-textview – Pasha

Trả lời

20

Bạn có thể áp dụng AbsoluteSizeSpan trong Spannable của bạn để làm cho kích thước khác nhau của văn bản trong cùng một nội dung.

private void setText(Button btn, String text, String underText) { 

    Spannable span = new SpannableString(text + "\n" + underText); 
    span.setSpan(new AbsoluteSizeSpan(fontSize), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    btn.setText(span); 
} 
+0

Tôi đang cố gắng sử dụng sollution này cho một NÚT nhưng nó không hoạt động –

8

Thay vì làm việc đó thông qua mã, bạn chỉ có thể đạt được điều đó bằng cách sử dụng html thứ trong chuỗi nguồn. Ví dụ:

Xác định một tài nguyên chuỗi:

<string name="tmp"><font size="30">2</font>abc</string> 

và áp dụng nó vào văn bản của nút bấm của bạn:

android:text="@string/tmp" 
+1

Đơn vị của giá trị được chỉ định kích thước là pixel hoặc dp? –

+1

tôi tin kích thước liên quan đến html nằm ở pixel – waqaslam

+0

Mặc dù công việc này cực kỳ chậm ... nếu bạn đang cập nhật văn bản thường xuyên hoặc có nhiều trường hợp này trong chế độ xem của bạn, đừng sử dụng nó API SpannabelStringBuilders có thể không đẹp, nhưng nó nhanh – martyglaubitz

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