2015-06-10 2 views
0

Перед тем, как перейти с отрицательными комментариями/голосами, я уточню, что я прочитал каждый вопрос в разделе «Stackoverflow по этой теме» и применил почти все решения, но все же мне не удалось полностью его применить.Применение пользовательского шрифта для всего приложения для Android?

Итак, я задаю этот вопрос, потому что почти все ответы, которые я нашел, похожи на 4-5 лет назад, и мне было интересно, есть ли сейчас лучшие решения.

Повторяю мой вопрос: есть ли лучший способ, чем перечисленные, переопределить все семейство шрифтов всего приложения только одним шрифтом? (Все виды, используемые в приложении)?

Заранее благодарен!

Cheers!

+0

Возможный дубликат [Пользовательские шрифты и XML-макеты (Android)] (http://stackoverflow.com/questions/2376250/custom-fonts-and-xml-layouts-android) – adao7000

+0

Вы видели мой ответ? –

+0

Привет! Извините, я был вне города без доступа в Интернет. Я не нашел никаких обходов для установки одного шрифта в приложении, поэтому я прибегал к вызову setTypeface() для каждого представления в каждом из фрагментов/acitivties. Спасибо, и я прошу прощения за долгое время! –

ответ

1

Лучший способ по-прежнему поместить ваш файл или .otf в папку с ресурсами. Затем выведите собственный класс TextView и исправьте его «шрифт раз и навсегда, чтобы вам не приходилось звонить setTypeface() всюду.

Это все.

0

Пользовательские TextView Java Class

Поместите этот класс в com.util пакет

import android.content.Context; 
import android.graphics.Typeface; 
import android.util.AttributeSet; 
import android.widget.TextView; 

public class CustomTextViewRegular extends TextView { 

    public CustomTextViewRegular(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
     init(attrs); 
    } 

    public CustomTextViewRegular(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     init(attrs); 

    } 

    public CustomTextViewRegular(Context context) { 
     super(context); 
     init(null); 
    } 

    private void init(AttributeSet attrs) { 
     if (attrs != null) { 
//   Set type face 
      Typeface myTypeface = Typeface.createFromAsset(getContext() 
        .getAssets(), "Helvetica_Neue.ttf"); 
      setTypeface(myTypeface); 
     } 
    } 

} 

Вы сусло имеют Helvetica_Neue.ttf в активов папку, вы можете использовать другой шрифт.

Как использования в XML

<com.util.CustomTextViewRegular 
    android:id="@+id/txtCustom" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/hello_world" 
    android:textColor="#727272" 
    android:textSize="20dip" /> 

Если вы хотите измененийшрифт, чем вы должны просто изменить шрифт типа в Java только класса.

Совершено

0

Я не нашел обходные для установки одного шрифта на приложение, так что я прибегал в вызове setTypeface() для каждого вида в каждом из фрагментов/мероприятий. Спасибо, и я прошу прощения за долгое время, когда я не ответил! Я хорошо заслуживаю downvotes, хе-хе.

Приветствует всех! Я буду уделять больше внимания заданию вопросов и моему поведению в отношении пользователей, отвечающих им в будущем.

Смежные вопросы