Intereting Posts
SavedInstanceState всегда имеет нулевой фрагмент Использовать кнопочную кнопку Android 4.0 Расположение Android Studio SDK Сохранять открытое / закрытое состояние клавиатуры для EditText, когда приложение выходит на передний план Как закрыть активность с помощью клавиатуры программного обеспечения после нажатия BACK? Как сделать уведомление возобновлением и не воссоздать деятельность? Android Studio зависает / замораживается при сбое сборки проекта Динамически добавлять фрагмент в фрагмент Установите флажок «Запомнить меня» Экран Android-приложения мигает при запуске Как очистить историю веб-просмотра в android Запускать кусок кода только один раз, когда приложение установлено Автоматическое добавление нескольких пользовательских представлений в макет Как отключить чертеж украшения элемента RecyclerView для продолжительности анимации элементов Как выбрать формат видео для воспроизведения в Интернете, Android и iOS?

Как добавить внешние шрифты в приложение для Android

Я искал стильные шрифты для моего приложения для Android. Но проблема в том, как я могу сделать приложение для Android доступным для внешних шрифтов.

Спасибо.

Solutions Collecting From Web of "Как добавить внешние шрифты в приложение для Android"

Вам нужно создать папку шрифтов в папке с ресурсами в вашем проекте и поместить в нее свой TTF. Затем в вашей деятельности onCreate ()

TextView myTextView=(TextView)findViewById(R.id.textBox); Typeface typeFace=Typeface.createFromAsset(getAssets(),"fonts/mytruetypefont.ttf"); myTextView.setTypeface(typeFace); 

Обратите внимание, что не все TTF будут работать. Пока я экспериментировал, он работал только для подмножества (в Windows те, чье имя написано небольшими шапками).

Вы можете использовать пользовательский TextView для всего приложения с настраиваемым шрифтом, вот пример этого

 public class MyTextView extends TextView { Typeface normalTypeface = Typeface.createFromAsset(getContext().getAssets(), Constants.FONT_REGULAR); Typeface boldTypeface = Typeface.createFromAsset(getContext().getAssets(), Constants.FONT_BOLD); public MyTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public MyTextView(Context context, AttributeSet attrs) { super(context, attrs); } public MyTextView(Context context) { super(context); } public void setTypeface(Typeface tf, int style) { if (style == Typeface.BOLD) { super.setTypeface(boldTypeface/*, -1*/); } else { super.setTypeface(normalTypeface/*, -1*/); } } } 

Создайте папку с именем fonts в папке с ресурсами и добавьте фрагмент из приведенной ниже ссылки.

 Typeface tf = Typeface.createFromAsset(getApplicationContext().getAssets(),"fonts/fontname.ttf"); textview.setTypeface(tf); 

Чтобы реализовать, вам нужно использовать Typeface, используя образец ниже

 Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/Roboto/Roboto-Regular.ttf"); for (View view : allViews) { if (view instanceof TextView) { TextView textView = (TextView) view; textView.setTypeface(typeface); } } } 

Самый простой способ добиться этого – упаковать нужные шрифты (ы) с вашим приложением. Для этого просто создайте активы / папку в корне проекта и поместите в свои объекты шрифты (в форме TrueType или TTF). Например, вы можете создавать активы / шрифты / и размещать там TTF-файлы.

Затем вам нужно указать вашим виджетам использовать этот шрифт. К сожалению, вы больше не можете использовать XML-макет для этого, поскольку XML не знает о каких-либо шрифтах, которые вы, возможно, убрали в качестве актива приложения. Вместо этого вам нужно внести изменения в код Java, вызвав Typeface.createFromAsset (getAssets (), «fonts / HandmadeTypewriter.ttf»), а затем создав созданный объект Typeface и передав его в TextView через setTypeface ().

Для получения дополнительной информации здесь приведен учебник, в котором я получил следующее:

http://www.androidguys.com/2008/08/18/fun-with-fonts/

Я рекомендую этот подход очень приятно с добавлением имени шрифта в typeface в styles.xml и помещением вашего набора шрифтов в папку с assets .

Еще один момент в дополнение к приведенным выше ответам. При использовании шрифта внутри фрагмента экземпляр шрифта должен выполняться в методе onAttach (переопределение), как показано ниже:

 @Override public void onAttach(Activity activity){ super.onAttach(activity); Typeface tf = Typeface.createFromAsset(getApplicationContext().getAssets(),"fonts/fontname.ttf"); } 

Причина :
Существует короткий промежуток времени до присоединения фрагмента к активности. Если метод CreateFromAsset вызывается перед присоединением фрагмента к активности, возникает ошибка.