KerningViews

Additional

Language
Java
Version
v1.1.0 (Apr 16, 2018)
Created
May 31, 2016
Updated
Oct 5, 2018 (Retired)
Owner
Aritra Roy (aritraroy)
Contributor
Aritra Roy (aritraroy)
1
Activity
Badge
Generate
Download
Source code

KerningViews

KerningViews provides a set of views (currently only TextView and Button) which lets you adjust the spacing between the characters in the text of that view also know as Kerning.

Kerning is a common feature in design apps like Photoshop or Sketch, but Android natively doesn't allow Kerning. From API level 21, Android allows you to do this using setLetterSpacing attribute , but there is no way to achieve this in pre-21 devices.

KerningViews provides a simple API to achieve this feature in TextView and Button text across all API levels in Android.

Screenshot

This screenshot is from the sample app showing different text with different spacing (kerning factor).

Download

This library is available in jCenter which is the default Maven repository used in Android Studio.

dependencies {
    // other dependencies here
    implementation 'com.andrognito.kerningview:kerningview:x.y.z'
}

Usage

You should see the sample app for complete usage details. You can either use these views and set the attribute via XML or programmatically change the kerning factor as required.

XML

Just use the KerningTextView or KerningButton in your XML layouts. If you do not put the kv_spacing attribute then it will behave as a normal TextView with no letter spacing.

You can customize the letter spacing by using the kv_spacing attribute with different kerning factor (supports floating point values).

<com.andrognito.kerningview.KerningTextView
       android:id="@+id/text1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:fontFamily="sans-serif"
       android:text="@string/sample_text_1"
       android:textSize="@dimen/text_size_xlarge"
       app:kv_spacing="10" />

JAVA

Just reference the views from your layout and use the setter to change the letter spacing of the texts.

KerningTextView mText = (KerningTextView) findViewById(R.id.text);
mText.setKerningFactor(3.5f);

Contribution

This is a very simple and tiny library that solves one simple use case.But I would love to accept contributions to improve or add functionality to it. It is my first library too.

About The Author

Aritra Roy

Design-focussed Engineer. Full-stack Developer. Hardcore Android Geek. UI/UX Designer. Part-time Blogger.

License

Copyright 2016 aritraroy

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.