13

Ich möchte benutzerdefinierte Schriftart auf den Titel meiner App anwenden, der auf der ActionBar angezeigt wird. Zuvor habe ich keine Support-Bibliothek und diese Lösung:So ändern Sie die ActionBar-Titelschrift bei Verwendung von AppCompat

int titleId = getResources().getIdentifier("action_bar_title", "id", 
       "android"); 
TextView yourTextView = (TextView) findViewById(titleId); 
yourTextView.setTypeface(face); 

hat gut für mich gearbeitet. Aber jetzt benutze ich Material Design SupportActionBar und dies wirft NullPointerException. Wie ändere ich die ActionBar-Schriftart, wenn ich AppCompat verwende?

+1

Diese Antwort ich denke, können Sie helfen http://StackOverflow.com/a/15181195/2778639 –

+0

@ user27799 Danke, dieser Beitrag behoben mein Problem. Wenn jemand ein ähnliches Problem hat wie ich, verwenden Sie einfach die Methode aus dem verlinkten Post, was gut mit der Support-Bibliothek v-21 funktioniert. – fragon

+0

Hier werden die Lösungen, [ActionBar individuelles Design.] [1] [1]: http://stackoverflow.com/questions/17966350/changing-the-font-of-the-application-title- in-android/21480484 # 21480484 – Karthikeyan

Antwort

-2

maßgeschneidertes Layout vorbereiten, Textansicht in action_bar_layout setzen und rufen Sie dann actionbar.setcustomlayout()

5

Sie sind bereits erfolgreich die neue Symbolleiste von AppCompat v22 + mit der Annahme und dass Sie importieren android.support. v7.widget.Toolbar in Ihrer Aktivität.

Also auf Ihrem OnCreate sollten Sie bereits haben

toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 

Sie an dieser Stelle fast fertig sind:

Import java.lang.reflect.field;

und fügen Sie folgende Zeilen:

TextView yourTextView = null; 
try { 
    Field f = toolbar.getClass().getDeclaredField("mTitleTextView"); 
    f.setAccessible(true); 
    yourTextView = (TextView) f.get(toolbar); 
    yourTextView.setTypeface(face); 
} catch (NoSuchFieldException e) { 
} catch (IllegalAccessException e) { 
} 
+1

Arbeitete für mich. Vielen Dank – QuantumTiger

1

Verwenden Toolbar statt ActionBar.follow unten beschriebenen Schritte Symbolleiste hinzufügen: 1.Change App Thema Theme.AppCompat.Light.NoActionBar 2.Goto Projektstruktur aus dem Menü Datei, zur Bibliothek Abhängigkeiten, fügen Sie eine Design-Bibliothek hinzu und synchronisieren Sie Ihr Projekt. 3.Goto Ihr Layout, wo Sie wollen ActionBar angezeigt werden und unter Code schreiben:

<android.support.v7.widget.Toolbar 
    android:id="@+id/mytoolbar" 
    android:layout_width="match_parent" 
    android:layout_height="56dp" 
    android:background="@color/pccolor" 
    android:title="Services" 
    app:titleTextAppearance="@style/Toolbar.TitleText" 
    android:elevation="4dp"> 
    <TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Toolbar Title" 
    android:layout_gravity="center" 
    android:id="@+id/toolbar_title" /> 
</android.support.v7.widget.Toolbar> 

4.In der Aktivität, schreiben wie folgt:

Toolbar mytoolbar=(Toolbar)findViewById(R.id.mytoolbar); 
    setSupportActionBar(mytoolbar); 

Um Ihre Titel Schriftart anpassen:

fontPath = "Fonts/Roboto-Light.ttf"; 
    Typeface tf = Typeface.createFromAsset(getActivity().getAssets(), fontPath); 

TextView tv_ins=(TextView)FindViewById(R.id.toolbar_title); 
tv_ins.setText("mytitle"); 
tv_ins.setTypeface(tf); 

Probieren Sie dies aus Hofft, dass dies Ihnen hilft, wenn etwas falsch ist, lass es mich wissen.

Verwandte Themen