Изменить шрифт для приложения через меню настроек
Я пытаюсь реализовать функцию, при которой пользователь может активировать режим "Дислексия", который изменяет шрифт всего приложения на шрифт, сохраненный в res в виде файла.tff.
Из-за прочтения это кажется очень сложной задачей. Я понял, что можно использовать собственный шрифт для всего приложения ( отсюда), но из моего понимания этого примера он не подходит для переключения шрифта с помощью метода onClick.
Есть ли способ сделать это с помощью кнопки?
1 ответ
Вы можете расширить TextView своим собственным классом, используя его везде в вашем проекте.
public class MyTextView extends TextView {
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public MyTextView(Context context) {
super(context);
init(context);
}
private void init(Context context) {
Typeface tf =
Typeface.createFromAsset(context.getAssets(), getFontFromPreferences(context));
setTypeface(tf);
}
private String getFontFromPreferences(Context context) {
SharedPreferences preferences = context.getSharedPreferences("myPrefs", Context.MODE_PRIVATE);
String fontString = preferences.getString("my_font_pref_key", "Default.tff");
return fontString;
}
}
В настройках вашей кнопки просто установите в SharedPreferences новый шрифт.