Objeto auxiliar para injetar o tipo de letra em várias visualizações de texto do Android.
Podemos usar vários tipos de letra personalizados para qualquer visualização de texto (como TextView, Button, Radiobutton, EditText etc.), mas não há como definir o tipo de letra como um tema estilizado para aplicar o tipo de letra para as telas gerais no aplicativo.
Esta biblioteca ajuda a fazer isso de maneira fácil :)
E também há um bug sério que a criação do tipo de letra a partir do recurso de ativos causará vazamento de memória (consulte este link para obter mais detalhes), essa biblioteca também se cuidará com esse problema.
Primeiro, coloque seu tipo de letra no diretório asset .
Na sua aula de aplicativo, cuide do ciclo de vida do objeto auxiliar.
public class MyApp extends Application {
@ Override
public void onCreate () {
super . onCreate ();
TypefaceHelper . initialize ( this );
}
@ Override
public void onTerminate () {
TypefaceHelper . destroy ();
super . onTerminate ();
}
}E em sua atividade, se você quiser definir seu tipo de letra para uma visualização de texto,
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" );
}
}Você também pode definir seu tipo de letra para todas as visualizações de texto que pertencem a um grupo de vista específico assim.
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" );
}
}Se você deseja aplicar o tipo de letra para todas as visualizações de texto no layout da atividade,
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" ));
}
}Bom e fácil!
Você pode aplicar o tipo de letra em toda a sua janela assim.
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" );
}
}E ... você também pode passar o nome da fonte como um ID de recurso de string:
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.
E o aplicativo de amostra usa a seguinte fonte em OFL.