2011-01-04 3 views

Antwort

5

Bedeutet das, dass Sie die Schriftarten der Schaltfläche ändern müssen?

Dies ist der Code, um die Schriftart der Textansicht zu Android-Standard auf Helvetica zu ändern. Als Schaltfläche Textansicht erweitert, können Sie diesen Code direkt ohne Änderung verwenden, für die Schaltfläche, Textansicht und wenn ich nicht falsch Spinner auch bin.

Hinweis: Es wird davon ausgegangen, dass Sie eine ttf-Datei der Schriftart in Ihren Assests-Ordner kopiert haben.

1

Eine praktische und einfache Routine, um dies über eine ganze Aktivität anzuwenden, ist das folgende Aufruf von setContentView() in onCreate(). auch nützlich in Adapter.getView()

static Typeface typeface = null; 
static void ApplyOurFont(Context context,ViewGroup vg) 
{ 
    if (typeface==null) 
     typeface = Typeface.createFromAsset(context.getAssets(),"ourfont.ttf"); 
    int cnt = vg.getChildCount(); 
    for (int i=0;i<cnt;++i) 
    { 
     View v = vg.getChildAt(i); 
     if (v instanceof TextView) 
     { 
      TextView tv = (TextView)v; 
      tv.setTypeface(typeface); 
     } 
     if (v instanceof ViewGroup) 
     { 
      ApplyOurFont(context,(ViewGroup)v); 
     } 
    } 
} 
0

Basierend auf Prahams Post habe ich nur den Code-Schnipsel in meiner Klasse verwendet. Ich habe gerade zwei Methoden erstellt, die die ganze Arbeit erledigen. Sie müssen also jedes Element an die Methode übergeben und es wird in der spezifischen ttf-Schriftart erstellt.

habe ich eine Variable am Anfang meiner Klasse

Typeface typeface; 

dann müssen Sie

setFont(anyElement); 

und hier die beiden Methoden, um die instanziiert Elemente an die Methode übergeben, die die Arbeit machen. Innerhalb von "setFont" wird die zweite Methode "getFontFromAsset" aufgerufen, so dass die Schriftart bei Bedarf an einer Stelle geändert werden kann.

private void setFont(TextView element){ 
    Context context = element.getContext();  
    element.setTypeface(getFontFromAsset(context));  
} 

private Typeface getFontFromAsset(Context context){  
    typeface = Typeface.createFromAsset(context.getAssets(), "beware.ttf"); 
    return typeface; 
} 

oder es nützlicher, Quelle es aus zu einer neuen Klasse zu machen. Dann gibt es nur einen Platz, an dem Sie die Schriftart festlegen können. Sie müssen diese Klasse nur in Ihren Aktivitäten initiieren und die Elemente über die FontClass-Methoden übergeben.

Hier mein FontClass

package xandru.cea; 

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

public class FontClass { 

    Typeface typeface; 

    public FontClass(){ 

    return;  
    } 

    public void setFont(TextView element){ 
    Context context = element.getContext();  
     element.setTypeface(getFontFromAsset(context));  
    } 

    private Typeface getFontFromAsset(Context context){  
     typeface = Typeface.createFromAsset(context.getAssets(), "beware.ttf"); 
     return typeface; 
    } 
} 

als init der Klasse:

FontClass fontClass = new FontClass(); 

und übergeben Elemente durch:

fontClass.setFont(anyElement); 
Verwandte Themen