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



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



спасибо.

394   7  

7 ответов:

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

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

обратите внимание, что не все TTF будет работать. Пока я экспериментировал, он работал только для подмножества (на окнах те, чье имя написано маленькими заглавными буквами).

вы можете использовать пользовательский 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 в папке assets и добавьте фрагмент из приведенной ниже ссылки.

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

для реализации вам нужно использовать шрифт пройти через образец ниже

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, вызвав Шрифт.createFromAsset (getAssets (), "шрифты/HandmadeTypewriter.ТЦФ"), затем возьмите созданный объект шрифта и передайте его вашему TextView через setTypeface ().

для получения дополнительной информации вот учебник, где я получил это:

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

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

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

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

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

Comments

    Ничего не найдено.