Skip to content

naseemakhtar994/Fontify

 
 

Repository files navigation

TextView, EditText and Button with custom fonts with normal, bold and thin style for different languages.

When the language of device changes the library automatically use the font for that language.

Installation

  1. Configure your top-level build.gradle to include my repository
allprojects {
    repositories {
        jcenter()
        maven { url "http://dl.bintray.com/meh-dok/public-maven" }
    }
}

Then config your app-level build.gradle to include the library as dependency:

compile 'com.mehdok.views:fontify:1.0.0-beta1'

Usage

  1. Use the View in you xml layout like this:
<com.mehdok.views.TextViewNormal
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="@dimen/item_margin_bottom"
        android:text="@string/normal"
        android:textSize="@dimen/text_size"
        />
        
<com.mehdok.views.EditTextBold
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="@dimen/item_margin_bottom"
        android:text="@string/bold"
        android:textSize="@dimen/text_size"
        />
        
<com.mehdok.views.ButtonThin
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="@dimen/item_margin_bottom"
        android:text="@string/thin"
        android:textSize="@dimen/text_size"
        />

in your application class you need to init the fontify like this:

Fontify
       .init("fonts/Roboto-Regular.ttf")
       .addFontNormal("en", "fonts/Roboto-Regular.ttf")
       .addFontNormal("fa", "fonts/FreeFarsi.ttf")
       .addFontNormal("ar", "fonts/FreeFarsi.ttf")
       .addFontBold("en", "fonts/Roboto-Bold.ttf")
       .addFontBold("fa", "fonts/FreeFarsi-Bold.ttf")
       .addFontBold("ar", "fonts/FreeFarsi-Bold.ttf")
       .addFontThin("en", "fonts/Roboto-Thin.ttf")
       .addFontThin("fa", "fonts/FreeFarsi-Mono.ttf")
       .addFontThin("ar", "fonts/FreeFarsi-Mono.ttf")
       .cacheSize(5)
       .build();
  • init the library with a default font, the path must be complete path in your assets.
  • add as many font as you need for different language and styles. the first parameter must be language code and second one is the complete path of font in your assets.
  • finally set the cache size to indicate how many font you want to keep in ram, the default is 3, more cache size mean faster view loading (maybe slightly) and more ram usage.

for an example look the app.

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%