Android: жирный текст кнопки

У меня есть кнопка в моем приложении. текст в кнопке выглядит как "Type: Location" примерно так.

Мне интересно, можно ли изменить текст на кнопке как "Тип: Местоположение"

т.е. полужирный текст частично на кнопке??

Спасибо за ваше время заранее.


person Jay Mayu    schedule 02.09.2011    source источник


Ответы (6)


Просто поместите свою строку в strings.xml и измените ее следующим образом:

 <string name="hello"><b>Hello</b> World, fh!</string>

и установите этот текст на свою кнопку, как это

<Button
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textAllCaps="false"
    android:text="@string/hello"
    />

Иногда описанный выше подход может оказаться бесполезным, если вам придется использовать динамический текст. Так что в этом случае вступает в действие SpannableString.

  String tempString="Copyright";
  Button button=(Button)findViewById(R.id.button);
  SpannableString spanString = new SpannableString(tempString);
  spanString.setSpan(new StyleSpan(Typeface.BOLD), 0, spanString.length(), 0);
  button.setText(spanString);
person Andro Selva    schedule 02.09.2011
comment
Не забудьте добавить android:textAllCaps=false (без этого не работает) - person Maxim Firsoff; 09.11.2017

у нас есть более лучший выбор, например: android:textStyle="bold" Android API поддерживает жирный шрифт

person Yang Li    schedule 02.09.2011
comment
это выделит весь текст на кнопке :( - person Jay Mayu; 02.09.2011
comment
Я спрашиваю своего мастера, он говорит, что Html.fromHtml лучше и проще в управлении. - person Yang Li; 02.09.2011

Вы можете установить его с помощью Html.fromHtml() и передать в виде строки строковый ресурс с элементами HTML. Надеюсь это поможет!

person Dimitris Makris    schedule 02.09.2011

Использование промежутков:

SpannableStringBuilder builder = new SpannableStringBuilder("Type: your type here!");
StyleSpan boldStyle = new StyleSpan(Typeface.BOLD);
builder.setSpan(boldStyle, 0, 5, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
((Button) findViewById(R.id.button)).setText(builder);
person nixan    schedule 02.09.2011

Вы можете использовать базовый каталог разметки в строках, например.

"<b>Type</b>: Location"

См. раздел Стили с помощью HTML-разметки.

person PJL    schedule 02.09.2011

Если вы хотите установить текст программно, используйте этот метод

Кнопка

Сначала вам нужно установить свойство кнопки в XML

android:textAllCaps="false" // very important without this property might be it won't show effect

public SpannableString setSpanableString(String textString, int start, int end){

    SpannableString spanString = new SpannableString(textString);
    spanString.setSpan(new StyleSpan(Typeface.BOLD), start, end, 0);

    return spanString;
}


Button btn; // get your button reference here

String text = "Hi, Dharmbir";
btn.setText(setSpanableString(text, 4, text.length));// set here your index

Просмотр текста

TextView tv; // get your TextView reference here

String text = "Hi, Dharmbir";
tv.setText(setSpanableString(text, 4, text.length));

Вывод

Привет, Дхармбир

person Dharmbir Singh    schedule 24.12.2016