kotlin - пользовательский шрифт для alertDialog - PullRequest
0 голосов
/ 07 ноября 2018

Я должен изменить шрифт по умолчанию alertDialog.setMessage и alertDialog.setTitle, но я не могу использовать пользовательский макет, поэтому я должен изменить его по коду в Kotlin . Я пытался использовать гарнитуру, но он не определяет шрифт в 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.

Как это сделать?

Надеюсь, я все хорошо объяснил

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Я обхожу проблему так:

Настройка вида

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()

Я надеюсь, что это поможет другим людям,

0 голосов
/ 07 ноября 2018

Android поставляется с хорошим шрифтом по умолчанию, но в некоторых случаях вы можете использовать другой шрифт.

Самый быстрый способ использовать пользовательский шрифт Android

Поместите файл шрифта в папку активов

enter image description here

Создание объекта гарнитуры

 Typeface customFont = Typeface.createFromAsset(getAssets(), "fonts/Roboto-Bold.ttf")

Установить для гарнитуры TextView / EditText / Button и т. Д. *

TextView textView = (TextView) findViewById(R.id.my_textview);
textView.setTypeface(customFont);
...