Objet d'aide pour injecter la police de caractères en différentes vues de texte d'Android.
Nous pouvons utiliser divers actifs sur les polices de type personnalisés pour toutes les vues de texte (comme TextView, Button, Radiobutton, EditText, etc.), mais il n'y a aucun moyen de définir la police comme un thème stylé pour appliquer la police de caractères pour les écrans globaux de l'application.
Cette bibliothèque aide à le faire de manière facile :)
Et il y a aussi un bogue sérieux que la création de polices de caractères à partir de la ressource d'actifs entraînera une fuite de mémoire (voir ce lien pour plus de détails), cette bibliothèque prendra également soin de ce problème.
Tout d'abord, placez votre police dans le répertoire asset .
Dans votre cours d'application, prenez soin du cycle de vie de l'objet d'aide.
public class MyApp extends Application {
@ Override
public void onCreate () {
super . onCreate ();
TypefaceHelper . initialize ( this );
}
@ Override
public void onTerminate () {
TypefaceHelper . destroy ();
super . onTerminate ();
}
}Et dans votre activité, si vous souhaitez définir votre police sur une vue de texte,
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" );
}
}Vous pouvez également définir votre police pour toutes les vues de texte qui appartiennent à un groupe de vue spécifique comme celle-ci.
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" );
}
}Si vous souhaitez appliquer la police de caractères pour toutes les vues de texte sous la disposition d'activité,
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" ));
}
}Nice et facile!
Vous pouvez appliquer la police de caractères à toute votre fenêtre comme celle-ci.
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" );
}
}Et ... vous pouvez également passer le nom de la police en tant qu'ID de ressource de chaîne:
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.
Et l'exemple d'application utilise la police suivante sous OFL.