Helferobjekt zum Injektieren der Schrift in verschiedene Textansichten von Android.
Wir können verschiedene benutzerdefinierte Schriftarten für alle Textansichten (z.
Diese Bibliothek hilft, dies auf einfache Weise zu tun :)
Es gibt auch einen schwerwiegenden Fehler, dass das Erstellen von Schriftarten aus Asset Resource das Speicherleck verursacht (weitere Details finden Sie in diesem Link). Diese Bibliothek kümmert sich auch um dieses Problem.
Setzen Sie zunächst Ihre Schrift in asset -Verzeichnis.
Achten Sie in Ihrem Anwendungskurs auf den Lebenszyklus des Helfer -Objekts.
public class MyApp extends Application {
@ Override
public void onCreate () {
super . onCreate ();
TypefaceHelper . initialize ( this );
}
@ Override
public void onTerminate () {
TypefaceHelper . destroy ();
super . onTerminate ();
}
}Und in Ihrer Aktivität möchten Sie Ihre Schrift auf eine Textansicht festlegen, wenn Sie Ihre Schriftstelle festlegen möchten,
public class MyActivity extends Activity {
@ Override
public void onCreate ( Bundle savedInstanceState ) {
super . onCreate ( savedInstanceState );
setContentView ( R . layout . activity_main );
TextView hello = ( TextView ) findViewById ( R . id . hello_world );
TypefaceHelper . getInstance (). setTypeface ( hello , "font/font_file.ttf" );
}
}Sie können Ihre Schrift auch für alle Textansichten festlegen, die zu einer bestimmten Ansichtsgruppe gehören.
public class MyActivity extends Activity {
@ Override
public void onCreate ( Bundle savedInstanceState ) {
super . onCreate ( savedInstanceState );
setContentView ( R . layout . activity_main );
LinearLayout container = ( LinearLayout ) findViewById ( R . id . text_container );
TypefaceHelper . getInstance (). setTypeface ( container , "font/font_file.ttf" );
}
}Wenn Sie die Schrift für alle Textansichten unter dem Aktivitätslayout anwenden möchten, wenden Sie sich an.
public class MyActivity extends Activity {
@ Override
public void onCreate ( Bundle savedInstanceState ) {
super . onCreate ( savedInstanceState );
setContentView ( TypefaceHelper . getInstance (). setTypeface ( this , R . layout . activity_main , "font/font_file.ttf" ));
}
}Schön und einfach!
Sie können die Schrift auf Ihr gesamtes Fenster wie dieses anwenden.
public class MyActivity extends Activity {
@ Override
public void onCreate ( Bundle savedInstanceState ) {
super . onCreate ( savedInstanceState );
setContentView ( R . layout . layout_activity_main );
TypefaceHelper . getInstance (). setTypeface ( this , "font/font_file.ttf" );
}
}Und ... Sie können auch den Schriftnamen als String -Ressourcen -ID übergeben:
public class MyActivity extends Activity {
@ Override
public void onCreate ( Bundle savedInstanceState ) {
super . onCreate ( savedInstanceState );
setContentView ( R . layout . layout_activity_main );
TypefaceHelper . getInstance (). setTypeface ( this , R . string . font_primary );
}
}Gradle:
compile 'com.drivemode:TypefaceHelper:1.2.0@aar'
Copyright (C) 2014 Drivemode, Inc. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.
Und die Beispiel -App verwendet die folgende Schriftart unter OFL.