2016-01-03 24 views
7

Chcę zrobić aplikację w języku innym niż angielski. Potrzebuję więc tekstów, napisów i tostów w języku nieangielskim. Ustawienie kroju czcionki dla każdego tekstu jest uciążliwe. Czy istnieje sposób ustawienia domyślnej czcionki? Kiedy muszę odwołać się do czegoś w języku angielskim (np. Identyfikator e-mail), wtedy mogę użyć metody textview.settypeface (xyz).Jak zmienić domyślną czcionkę aplikacji na Androida?

+0

możesz wypróbować ten link https://coderwall.com/p/qxxmaa/android-use-a-ustom-font-wszystkim –

Odpowiedz

9

Jest biblioteka ruszt dla niestandardowych czcionek w Androidzie: custom fonts

Oto przykład, jak go używać.

W Gradle trzeba umieścić ten wiersz:

compile 'uk.co.chrisjenx:calligraphy:2.1.0' 

a następnie dokonać klasy, która rozszerza stosowanie się napisać ten kod:

public class App extends Application { 
@Override public void onCreate() { super.onCreate(); 

CalligraphyConfig.initDefault(new CalligraphyConfig.Builder() 
       .setDefaultFontPath("your font path") 
       .setFontAttrId(R.attr.fontPath) 
       .build() 
); 
} 

}

aw klasie działalności zastosuj tę metodę wcześniej: Utwórz:

@Override 
protected void attachBaseContext(Context newBase) { 
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)); 

i ostatnią rzeczą w oczywisty zapisu pliku tak:

<application 
android:name=".App" 

i to zmieni całą działalność do czcionki !. Nie jestem prosty i czysty!

+1

Dzięki Shia za szczegółowe kroki. Fantastyczna biblioteka. – suku

+1

Oto wideo faceta, który zrobił bibliotekę wyjaśniając, jak to działa https://www.youtube.com/watch?v=WZkZVCWxIXs – suku

+2

Dzięki, człowieku, ratujesz mnie –

1

Możesz to osiągnąć głównie na 3 sposoby. jednym sposobem byłoby stworzenie własnego TextView i odnoszą się, że wszędzie, to znaczy:

public class TypefacedTextView extends TextView { 

    public TypefacedTextView(Context context, AttributeSet attrs) { 
     super(context, attrs); 

     Typeface typeface = Typeface.createFromAsset(context.getAssets(), fontName); 
     setTypeface(typeface); 
    } 
} 

i wewnątrz View.xml

<packagename.TypefacedTextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Hello"/> 

inny sposób, jest użycie potężnego Calligraphy bibliotekę w github. see this

I wreszcie, można przesłonić domyślne własnymi czcionkami, see this