2012-08-30 15 views
9

Chcę utworzyć przycisk. Ten przycisk zawiera literę o wielkości 22 pikseli i niektórych liter po prawej stronie o rozmiarze 16 pikseli.Różne teksty w przycisku

Jak to:
enter image description here

W jaki sposób można to osiągnąć?

W tej chwili mam to:

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

    btn.setText(span); 
} 
+0

blokada tej http://stackoverflow.com/questions/1529068/is -it-to-have-to-multiple-styles-inside-textview – Pasha

Odpowiedz

20

Można zastosować AbsoluteSizeSpan w swoim Spannable zrobić inny rozmiar tekstu w samej treści.

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

Próbuję użyć tego rozwiązania dla PRZYCISKU, ale nie działa –

8

Zamiast robić to za pomocą kodu, można po prostu go osiągnąć za pomocą HTML rzeczy w ciąg zasobu. Na przykład:

Definiowanie zasobów wyrażenie:

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

i zastosować go do przycisku w tekście:

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

Czy jednostką o wartości określonej w rozmiarze jest piksel lub dp? –

+1

Wierzę, że wymiary związane z html są w pikselach – waqaslam

+0

Mimo że działa to jest niesamowicie powolne ... jeśli często aktualizujesz tekst lub wiele z tych przypadków w hierarchii widoku, nie używaj go SpannabelStringBuilders API może nie być ładna, ale jest szybka – martyglaubitz

Powiązane problemy