All Projects → johnkil → Android Robototextview

johnkil / Android Robototextview

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

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Android Robototextview

Agave
sappy monospaced programming font
Stars: ✭ 235 (-70.29%)
Mutual labels:  font, typeface
Open Baskerville
An open font project to create a revival of Fry’s Baskerville
Stars: ✭ 372 (-52.97%)
Mutual labels:  font, typeface
Bungee
A chromatic signage typeface for vertical and horizontal setting.
Stars: ✭ 262 (-66.88%)
Mutual labels:  font, typeface
font-wonder-unit
Free and open source sans-serif font, brought to you by Wonder Unit.
Stars: ✭ 57 (-92.79%)
Mutual labels:  font, typeface
Undefined Medium
undefined medium — a free and open-source monospace typeface with 400+ characters
Stars: ✭ 449 (-43.24%)
Mutual labels:  font, typeface
hkcs
香港民間字集 Hong Kong Character Set Project (HKCS)
Stars: ✭ 29 (-96.33%)
Mutual labels:  font, typeface
Otfcc
Optimized OpenType builder and inspector.
Stars: ✭ 348 (-56.01%)
Mutual labels:  font, typeface
amiri
Amiri (أميري) is a body text Naskh typeface
Stars: ✭ 291 (-63.21%)
Mutual labels:  font, typeface
Crimson
The Crimson Text typeface
Stars: ✭ 439 (-44.5%)
Mutual labels:  font, typeface
Public Sans
A strong, neutral, principles-driven, open source typeface for text or display
Stars: ✭ 4,083 (+416.18%)
Mutual labels:  font, typeface
font-v
Font version string reporting and modification library + executable tool
Stars: ✭ 15 (-98.1%)
Mutual labels:  font, typeface
Codeface
Typefaces for source code beautification
Stars: ✭ 5,612 (+609.48%)
Mutual labels:  font, typeface
chiron-sans-hk
昭源黑體:現代筆形風格,平衡標準字形和印刷體慣用筆形的免費開源黑體字型
Stars: ✭ 131 (-83.44%)
Mutual labels:  font, typeface
Kepler-452b
Futuristic / minimal font family.
Stars: ✭ 13 (-98.36%)
Mutual labels:  font, typeface
typeface-minecraft
Minecraft typeface and colors
Stars: ✭ 20 (-97.47%)
Mutual labels:  font, typeface
Lora Cyrillic
Lora fonts — serif family for text. Variable Open Source Font
Stars: ✭ 266 (-66.37%)
Mutual labels:  font, typeface
Fonts
A curation of fonts from all over the world.
Stars: ✭ 144 (-81.8%)
Mutual labels:  font, typeface
plex
The package of IBM’s typeface, IBM Plex.
Stars: ✭ 7,977 (+908.47%)
Mutual labels:  font, typeface
Ideohint
Optimized hinter for Ideographs
Stars: ✭ 394 (-50.19%)
Mutual labels:  font, typeface
Qiji Font
齊伋體 - typeface from Ming Dynasty woodblock printed books
Stars: ✭ 536 (-32.24%)
Mutual labels:  font, typeface

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:

RobotoTextView textView = new RobotoTextView(context);
RobotoTypefaces.setUpTypeface(
        textView, 
        RobotoTypefaces.TYPEFACE_ROBOTO_LIGHT_ITALIC);

Using parameters fontFamily, textWeight and textStyle:

RobotoTextView textView = new RobotoTextView(context);
RobotoTypefaces.setUpTypeface(
        textView, 
        RobotoTypefaces.FONT_FAMILY_ROBOTO,
        RobotoTypefaces.TEXT_WEIGHT_LIGHT,
        RobotoTypefaces.TEXT_STYLE_ITALIC);

With Span

Using parameter typeface:

RobotoTypefaceSpan span = new RobotoTypefaceSpan(
        context, 
        RobotoTypefaces.TYPEFACE_ROBOTO_LIGHT_ITALIC);
Spannable spannable = new SpannableString("text");
spannable.setSpan(span, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

Using parameters fontFamily, textWeight and textStyle:

RobotoTypefaceSpan span = new RobotoTypefaceSpan(
        context,
        RobotoTypefaces.FONT_FAMILY_ROBOTO,
        RobotoTypefaces.TEXT_WEIGHT_LIGHT,
        RobotoTypefaces.TEXT_STYLE_ITALIC);
Spannable spannable = new SpannableString("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.

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    RobotoInflater.attach(this);
    super.onCreate(savedInstanceState);
}

and specify the typeface in xml:

<TextView
    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"
    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 (File file : 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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].