Skip to content

Repository files navigation

Android-RobotoTextView

Android Arsenal

Implementation of a TextView and all its direct/indirect subclasses with native support for the Roboto fonts, includes the brand new Roboto Slab and Roboto Mono fonts.

Supported fonts:

image

Get it on Google Play

Deprecated 😢

This project is deprecated in favor of the native implementation introduced in Android O.

Compatibility

This library is compatible from API 14 (Android 4.0).

Download

Gradle:

compile 'com.github.johnkil.android-robototextview:robototextview:4.0.0'

Maven:

<dependency>
<groupId>com.github.johnkil.android-robototextview</groupId>
<artifactId>robototextview</artifactId>
<version>4.0.0</version>
<type>aar</type>
</dependency>

Usage

In XML

To set up a typeface you must specify the parameter robotoTypeface:

<com.devspark.robototextview.widget.RobotoTextView
xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="wrap_content"android:layout_height="wrap_content"app:robotoTypeface="roboto_light_italic"/>

or specify a set of parameters robotoFontFamily, robotoTextWeight and robotoTextStyle:

<com.devspark.robototextview.widget.RobotoTextView
xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="wrap_content"android:layout_height="wrap_content"app:robotoFontFamily="roboto"app:robotoTextWeight="light"app:robotoTextStyle="italic"/>

Set up typeface in code:

In Code

Using parameter typeface:

RobotoTextViewtextView = newRobotoTextView(context);
RobotoTypefaces.setUpTypeface(
textView, RobotoTypefaces.TYPEFACE_ROBOTO_LIGHT_ITALIC);

Using parameters fontFamily, textWeight and textStyle:

RobotoTextViewtextView = newRobotoTextView(context);
RobotoTypefaces.setUpTypeface(
textView, RobotoTypefaces.FONT_FAMILY_ROBOTO,
RobotoTypefaces.TEXT_WEIGHT_LIGHT,
RobotoTypefaces.TEXT_STYLE_ITALIC);

With Span

Using parameter typeface:

RobotoTypefaceSpanspan = newRobotoTypefaceSpan(
context, RobotoTypefaces.TYPEFACE_ROBOTO_LIGHT_ITALIC);
Spannablespannable = newSpannableString("text");
spannable.setSpan(span, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

Using parameters fontFamily, textWeight and textStyle:

RobotoTypefaceSpanspan = newRobotoTypefaceSpan(
context,
RobotoTypefaces.FONT_FAMILY_ROBOTO,
RobotoTypefaces.TEXT_WEIGHT_LIGHT,
RobotoTypefaces.TEXT_STYLE_ITALIC);
Spannablespannable = newSpannableString("text");
spannable.setSpan(span, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

Roboto Inflater

To apply roboto typeface for original TextView (like a Calligraphy) you must attach inflater in your Activity class in the #onCreate() method.

@OverrideprotectedvoidonCreate(@NullableBundlesavedInstanceState) {
RobotoInflater.attach(this);
super.onCreate(savedInstanceState);
}

and specify the typeface in xml:

<TextViewxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="wrap_content"android:layout_height="wrap_content"app:robotoTypeface="roboto_light_italic"tools:ignore="MissingPrefix"/>

Note: Popular IDE's (Android Studio, IntelliJ) will likely mark this as an error despite being correct. You may want to add tools:ignore="MissingPrefix" to either the View itself or its parent ViewGroup to avoid this. You'll need to add the tools namespace to have access to this "ignore" attribute. xmlns:tools=" http://schemas.android.com/tools". See https://code.google.com/p/android/issues/detail?id=65176.

Gradle

If you intend to use is not all fonts, the extra fonts can be removed.

android.applicationVariants.all{ variant->
variant.mergeAssets.doLast {
File fonts = file("$variant.mergeAssets.outputDir/fonts")
if (fonts.exists()) {
for (Filefile : fonts.listFiles()) {
if (file.getName().contains("RobotoSlab")) {
println("delete "+ file.getName() +" font")
file.delete()
}
}
}
}
}

License

Copyright 2014 Evgeny Shishkin
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.

About

Implementation of a TextView and all its direct/indirect subclasses with native support for the Roboto fonts, includes the brand new Roboto Slab fonts.

Topics

Resources

Stars

769 stars

Watchers

39 watching

Forks

Releases

Packages

Used by

Contributors

Languages