Как применить пользовательский стиль шрифта / семейство для оповещения диалогов во всем приложении через стили - PullRequest
0 голосов
/ 19 декабря 2018

Я хочу изменить начертание шрифта диалогового окна оповещения во всем приложении.Как этого добиться с помощью XML (стили).Пожалуйста, помогите мне с некоторым решением. Спасибо

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Следуйте приведенному ниже методу,

 public void createDialog()
    {
            Dialog dialog = new Dialog(context);            
            dialog.setContentView(R.layout.your_dialog);

            final FontChangeCrawler fontChanger = new FontChangeCrawler(context.getAssets(), Constant.arialRoundedFont);
            fontChanger.replaceFonts((ViewGroup) dialog.findViewById(android.R.id.content));

            dialog.setCancelable(false);
            dialog.show();
    }

-> примените этот метод для всех ваших диалогов, создав этот метод в своем классе Util и используйте его глобально.это будет работать для вас.

0 голосов
/ 19 декабря 2018

Вам необходимо добавить Каллиграфию в build.gradle , Подробнее см. Каллиграфия .

dependencies {
    compile 'uk.co.chrisjenx:calligraphy:2.3.0'
}

Используйте приведенный ниже код в файле приложения:

CalligraphyConfig.initDefault(CalligraphyConfig.Builder()
            .setDefaultFontPath("fonts/roboto_bold.ttf")
            .setFontAttrId(R.attr.fontPath)
            .build()

Создание отдельного экземпляра диалога с использованием приведенного ниже кода или там, где вы создаете новое диалоговое окно.

progressDialog = ProgressDialog(ContextThemeWrapper(context, R.style.AlertProgressDialogCustom))

Поместите стиль ниже в style.xml

<style name="DialogTextButton" parent="@android:style/TextAppearance.Holo.Medium">
    <item name="fontPath">fonts/open_sans.ttf</item>
    <item name="android:textColor">@color/black</item>
</style>

<style name="AlertProgressDialogCustom" parent="@android:style/Theme.Material.Light.Dialog">
    <item name="android:textAppearanceMedium">@style/DialogTextButton</item>
    <item name="android:subtitleTextAppearance">@style/DialogTextButton</item>
    <item name="android:titleTextAppearance">@style/DialogTextButton</item>
    <item name="android:textColor">@color/black</item>
    <item name="android:textColorPrimary">@color/black</item>
    <item name="android:colorAccent">@color/btn_picker_color</item>
    <item name="android:progressTint">@color/btn_picker_color</item>
    <item name="android:textAppearance">@style/DialogTextButton</item>
</style>

Дайте мне знать, если вы все еще сталкиваетесь с проблемой.

...