Я искал стильные шрифты для моего приложения для Android. но проблема в том, как я могу сделать приложение для Android доступным для внешних шрифтов.
Спасибо.
Я искал стильные шрифты для моего приложения для Android. но проблема в том, как я могу сделать приложение для 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, form) в активы. Например, вы можете создать активы/шрифты и поставить свои TTF файлы там.
Затем вам нужно указать вашим виджетам использовать этот шрифт. К сожалению, вы больше не можете использовать XML-формат для этого, поскольку XML не знает о любых шрифтах, которые вы, возможно, убрали в качестве актива приложения. Вместо этого вам нужно внести изменения в код Java, позвонив Typeface.createFromAsset(getAssets(), "fonts/HandmadeTypewriter.ttf" ), затем, взяв созданный объект Typeface и передав его на ваш TextView через setTypeface().
Для получения дополнительной информации обратитесь к учебнику, в котором я получил следующее:
Я рекомендую этот подход, это очень приятно с добавлением имени пользовательского шрифта в typeface
to styles.xml
и помещения вашего набора шрифтов в assets
.
Еще одна точка в дополнение к приведенным выше ответам. При использовании шрифта внутри фрагмента, экземпляр шрифта должен выполняться в методе onAttach (переопределение), как показано ниже:
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
Typeface tf = Typeface.createFromAsset(getApplicationContext().getAssets(),"fonts/fontname.ttf");
}
Причина:
Существует короткий промежуток времени до присоединения фрагмента к активности. Если метод CreateFromAsset вызывается перед присоединением фрагмента к активности, возникает ошибка.