Я должен изменить шрифт по умолчанию для alertDialog.setMessage и alertDialog.setTitle, но я не могу использовать собственный макет, поэтому мне нужно изменить его с помощью кода в Котлин.
Я пробовал использовать шрифт, но он не определяет шрифт в res/font/product_sans_bold.ttf
Я также использовал
content.text = Html.fromHtml(resources.getString(R.string.centripetaFormule))
content.typeface = ResourcesCompat.getFont(applicationContext, R.font.product_sans_bold)
alertDialog.setView(content)
и работает, но не так, как я хочу.
У меня есть строка
<string name = "centripetaFormule>![CDATA[<h5>(...)</h5><p>(...)</p>
где h5 выделен полужирным шрифтом, поэтому при использовании переменного содержимого не будет различий между h5 и «обычным» текстом, за исключением размера.
Итак, я хочу изменить шрифт только для обычного текста, я не могу использовать собственный макет, мне нужно использовать строки с CDATA.
Как это сделать?
Надеюсь, я хорошо это объяснил
Android поставляется с красивым шрифтом по умолчанию, но в некоторых случаях вы можете использовать другой шрифт.
Самый быстрый способ использовать пользовательский шрифт Android
Поместите файл шрифта в папку с ресурсами
Создать объект гарнитуры
Typeface customFont = Typeface.createFromAsset(getAssets(), "fonts/Roboto-Bold.ttf")
Установите для шрифта значение TextView / EditText / Button и т. д.
TextView textView = (TextView) findViewById(R.id.my_textview);
textView.setTypeface(customFont);
Спасибо за ответ, но проблема в том, что у меня есть заголовок и «нормальный» текст, и у них должны быть разные шрифты, поэтому этот метод не работает.
Я обхожу проблему так:
Настроить вид
dialog_custom_nunito.xml:
<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:orientation = "vertical">
<TextView android:id = "@+id/custom_dialog_tv" android:layout_width = "wrap_content"
android:layout_margin = "12sp"
android:textSize = "18sp"
android:layout_height = "wrap_content" android:text = "@string/warning_recherche_no_found"/>
</LinearLayout>
Код Котлина:
val builder = AlertDialog.Builder(this)
builder.setView(R.layout.dialog_custom_nunito)
builder.setNegativeButton("OK") { dialogInterface, i -> }
builder.show()
Надеюсь, это поможет другим людям,
Возможный дубликат Как установить собственный шрифт для диалогового окна предупреждений в Android? или Несколько TypeFace в одном TextView