Несколько текстовых строк на кнопке. Каждая строка имеет разные стили текста

Привет, я пытаюсь создать кнопку с несколькими строками текста. Пример ниже. Каждая строка текста имеет другой размер текста и цвет, применяемые к нему. Кнопка также должна быть в состоянии отправить пользователя на следующую страницу. Возможно ли это в XML? Я везде искал и не могу найти решение. Благодарю.

КНОПКА ЗАГОЛОВОК ТЕКСТА (большой зеленый шрифт) Текст первой кнопки (маленький серый шрифт) Текст из 2-х кнопок (маленький белый шрифт)

См. Пример:

Введите описание изображения здесь

Изображение недоступно. Но в соответствии с вашей проблемой вы можете реализовать LinearLayout в качестве основного компонента и установить его свойство clickable и focusable, а также установить его фон для android.R.drawable.btn_default. Установите ориентацию этого макета на Vetic.

Добавьте столько текстовых элементов любого стиля в этот linearlayout в xml или динамически, сколько хотите. Но установите для всех объектов TextViews focusable и Clickable значение false.

Html.fromHtml (строка) может интерпретировать некоторые теги hmtl, и поэтому вы можете использовать html для стилизации текста ваших кнопок.

Предполагая, что вы определили свои кнопки в XML-файле, вы можете установить текст таких кнопок в коде Java.

 Button button = (Button) findViewById(R.id.button1); String styledText = "<big> <font color='#008000'>" + "My orders" + "</font> </big>" + "<br />" + "<small>" + "You have no current orders" + "</small>"; button.setText(Html.fromHtml(styledText)); // Attach a listener to the button that will make something // happen when the button is clicked button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // Put your Intent code here Log.d("onclick", "Button click registered"); } }); 

Вы можете складывать теги <big> и <small> HTML, чтобы умножить их эффект:

 private final String btnInnerHTML = "<big><big><big><font color='#000000'><b>%s</b></font></big></big></big><br/><small>%s</small>"; btn0.setText(Html.fromHtml(String.format(btnInnerHTML, "Line1", "Line2")));