Fontinator is an Android-Library that make it simply easy to use custom Fonts.
1.0
dependencies {
compile project(':fontinator')
...
}
xmlns:app="http://schemas.android.com/apk/res-auto"
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"
Fontinator extend TextView based Android Widgets like the Button to inject a Cached Fontface loader
Please Note that the Android Layout Editor currently can't Preview Custom Fonts
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 MyCustomFontButton extends Button implements Typefaceable{
private TypefaceLoader typefaceLoader;
public FontButton(Context context, AttributeSet attrs) {
super(context, attrs);
typefaceLoader = new TypefaceLoader(this, context, attrs);
}
@Override
public void setText(CharSequence text, BufferType type) {
super.setText(text, type);
if(type != BufferType.SPANNABLE && typefaceLoader != null){
typefaceLoader.createLetterSpacing(text);
}
}
}
```