Helper Object для инъекции шрифта в различные текстовые представления Android.
Мы можем использовать различные пользовательские активы для подсказок для любых представлений текста (например, TextView, Button, RadioButton, EditText и т. Д.), Но нет никакого способа установить шрифт в качестве стиля для применения шрифта для общих экранов в приложении.
Эта библиотека помогает сделать это легким способом :)
И есть также серьезная ошибка, что создание шрифта из ресурса активов приведет к утечке памяти (см. В этой ссылке подробно см. В этой библиотеке, эта библиотека позаботится об этой проблеме.
Во -первых, поместите свой шрифт в каталог asset .
В своем классе заявки позаботьтесь о жизненном цикле Helper Object.
public class MyApp extends Application {
@ Override
public void onCreate () {
super . onCreate ();
TypefaceHelper . initialize ( this );
}
@ Override
public void onTerminate () {
TypefaceHelper . destroy ();
super . onTerminate ();
}
}И в вашей деятельности, если вы хотите установить свой шрифт на текстовое представление,
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" );
}
}Вы также можете установить свой шрифт для всех текстовых представлений, которые принадлежат определенной группе представлений, подобной этой.
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" );
}
}Если вы хотите применить шрифт для всех текстовых представлений под макетом деятельности,
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" ));
}
}Приятно и легко!
Вы можете применить шрифт на все свое окно, как это.
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" );
}
}И ... вы также можете передать имя шрифта в качестве идентификатора ресурса строкового ресурса:
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 );
}
}Градл:
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.
И в примере приложения используется следующий шрифт под OFL.