Skip to content
Fontinator is an Android-Library make it easy, to use custom Fonts.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
LICENSE.md
README.md
build.gradle
fontinator.iml
pom.xml
proguard-rules.pro

README.md

Fontinator

alt tag

Fontinator is an Android-Library that make it simply easy to use custom Fonts.

Version

1.1.3

How to Use:

1. Add fonts to the /assets/fonts folder of your Android Studio Project
2. add compile 'de.morrox.fontinator:Fontinator:1.1.3' to your Application Gradle file
dependencies {
    compile 'de.morrox.fontinator:Fontinator:1.1.3'
    ...
}
3. add xmlns:app to the Layout XML root
xmlns:app="http://schemas.android.com/apk/res-auto"
4. Replace Android Widgets in Layout XML with the Fontinator Widgets

For Example simply replace:

<TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textAllCaps="true"
  android:textStyle="bold"
  android:text="@string/hello_world"
  android:textColor="@android:color/black"
  ... />

whit this XML Code

<de.morrox.fontinator.FontTextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  app:font="My Custom Font Bold.otf"
  app:textTransform="uppercase"
  app:letterSpace="1.4"
  android:text="@string/hello_world"
  android:textColor="@android:color/black"
  ...
  />

To set font file from /assets/fonts/ (use splited fonts without android:textStyle!)

  font="My Custom Font Bold.otf"

Replace textAllCaps=true with

  textTransform="uppercase"

[Optional] Add LetterSpace

  letterSpace="1.4"
5. Enjoy Fonted Widgets

How it works

Fontinator extend TextView based Android Widgets like the Button to inject a Cached Fontface loader

Issues

Please Note that the Android Layout Editor currently can't Preview Custom Fonts

Make Custom Widgets from a TextView based Widget

Option 1: simply extend

Option 2: Use TypefaceLoader and Typefaceable Interface

    import de.morrox.fontinator.utilities.TypefaceLoader;
    import de.morrox.fontinator.utilities.Typefaceable;
    
    public class MyCustomFontView extends Button implements Typefaceable{
        private TypefaceLoader typefaceLoader;
        public MyCustomFontView(Context context, AttributeSet attrs) {
            super(context, attrs);
            typefaceLoader = TypefaceLoader.get(this, context, attrs);
        }
    
        @Override
        public void setText(CharSequence text, BufferType type) {
            Pair<CharSequence, BufferType> pair = TypefaceLoader.inject(typefaceLoader, text, type);
            super.setText(pair.first, pair.second);
        }
        
        public void setFont(String font) {
            typefaceLoader.setFont(font);
        }
    
        public void setFont(@StringRes int font) {
            typefaceLoader.setFont(getResources().getString(font));
        }
    }
You can’t perform that action at this time.