Skip to content

A font manager for Android to apply custom font to whole app, support multi font and change font at runtime

Notifications You must be signed in to change notification settings

MostafaTaghipour/FontManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f4269cd · Jun 23, 2020

History

1 Commit
Jun 23, 2020
Jun 23, 2020
Jun 23, 2020
Jun 23, 2020
Jun 23, 2020
Jun 23, 2020
Jun 23, 2020
Jun 23, 2020
Jun 23, 2020
Jun 23, 2020
Jun 23, 2020
Jun 23, 2020

Repository files navigation

AndroidFontManager

AndroidFontManger is a font manager for Android:

  • Support custom fonts
  • Apply to entire app
  • Support Multiple fonts
  • Change font at runtime
  • XML compatible
  • Code compatible
  • Supports various text appearances and font weights

custom font app

Requirements

  • Api 14+

Installation

Add JitPack to repositories in your project's root build.gradle file:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

Add the dependency to your module's build.gradle file:

dependencies {
    ...
    implementation 'com.github.MostafaTaghipour:fontmanager:${version}'
}

Usage

  • Add your custom fonts to your project

fonts

  • Declare your fonts
companion object {
    val exo: AppFont
        get() = AppFont.AppFontBuilder(1, "Exo", "fonts/exo/", "Exo-Regular", "ttf")
                .thin("Exo-Thin")
                .extraLight("Exo-ExtraLight")
                .light("Exo-Light")
                .regular("Exo-Regular")
                .medium("Exo-Medium")
                .semiBold("Exo-SemiBold")
                .bold("Exo-Bold")
                .extraBold("Exo-ExtraBold")
                .black("Exo-Black")
                .build()


    val taviraj: AppFont
        get() = AppFont.AppFontBuilder(2, "Taviraj", "fonts/taviraj/", "Taviraj-Regular", "ttf")
                .thin("Taviraj-Thin")
                .extraLight("Taviraj-ExtraLight")
                .light("Taviraj-Light")
                .regular("Taviraj-Regular")
                .medium("Taviraj-Medium")
                .semiBold("Taviraj-SemiBold")
                .bold("Taviraj-Bold")
                .extraBold("Taviraj-ExtraBold")
                .black("Taviraj-Black")
                .build()
}
  • Wrap the Activity Context:
override fun attachBaseContext(newBase: Context) {
    super.attachBaseContext(FontManager.wrapContext(newBase))
}
  • Any time you need to change the font of the application use the following code
FontManager.getInstance().currentFont = taviraj /* your desired font */
  • Thats it, enjoy it

TextAppearance

If you want use TextAppearances use the following code

XML

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="some text"
        android:textAppearance="@style/Text.Subhead" />

Code

FontManager.applyTextAppearanceToTextView(this,textView,R.style.Text_Bold)

Dependencies

Author

Mostafa Taghipour, mostafa@taghipour.me

License

AndroidFontManager is available under the MIT license. See the LICENSE file for more info.

About

A font manager for Android to apply custom font to whole app, support multi font and change font at runtime

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published