Android подключение Шрифтов?

Добрый день, ребята как подключить к проекту шрифты, глобально.
К примеру подключил в одном месте, чтобы они ко всем применялись?
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
public class FontChangeCrawler {
    private Typeface typeface;

    public FontChangeCrawler(Typeface typeface) {
        this.typeface = typeface;
    }

    public FontChangeCrawler(AssetManager assets, String assetsFontFileName) {
        typeface = Typeface.createFromAsset(assets, assetsFontFileName);
    }

    public void replaceFonts(ViewGroup viewTree) {
        View child;
        for (int i = 0; i < viewTree.getChildCount(); ++i) {
            child = viewTree.getChildAt(i);
            if (child instanceof ViewGroup) {
                replaceFonts((ViewGroup)child);
            }
            else if (child instanceof TextView) {
                ((TextView) child).setTypeface(typeface);
            }
        }
    }
}

public class MainActivity extends AppCompatActivity {
    @Override
    public void setContentView(View view) {
        super.setContentView(view);

        FontChangeCrawler fontChanger = new FontChangeCrawler(getAssets(), "fonts/myfont.otf");
        fontChanger.replaceFonts((ViewGroup)this.findViewById(android.R.id.content));
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Дождаться Android O и support library 26.0.0 (доступна beta1), там есть это в нормальном виде.
Или воспользоваться библиотекой Calligraphy.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы