Need help with justified?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

216 Stars 48 Forks Apache License 2.0 15 Commits 12 Opened issues


Android TextView or EditText with justified text.

Services available


Need anything else?

Contributors list

# 303,678
15 commits

Justified TextView and EditText

Android TextView or EditText with justified text for API >= 10 (Gingerbread and newer).


Use an instance of the class

for a TextView with justified text.

Use an instance of the class

for an EditText with justified text (the text can be editable).

Project Setup




dependencies {
    compile 'com.uncopt:android.justified:1.0'

Sample Application

Get it on Google Play

The source code for the demo application is in this repository (app folder).

Implementation Details

The best way to implement justification on TextViews would be to extend the Layouts from the

package. However those Layout classes cannot be extended easily without relying heavily on java reflection.

The next best thing is probably to add spacing spans to the text. This is what this library is doing.

The text is parsed and measured and spans are added on the whitespace between words to make the lines stretch the full width as much as possible. Those spans are very similar to

, but they do not implement
and are not copied by Copy or Cut and Paste operations.

The re-parsing of the text is triggered by:

  • a change of the text content.
  • a re-layout with a different width.
  • a change in the typeface, text size or text scaleX.

Some special characters are not stretched (unless there are more than one in row):

  • thin space
  • hair space
  • non breaking space

Indentation spaces are also left as-is to preserve the alignment.

The lines that do not have any whitespace or that would require the whitespace to be stretched too much are not justified. The limit for how much stretching is allowed is a factor of 10 by default, but this default can be changed.

The measuring of the text is not completely accurate (due to floating errors, font hinting, ...) and as a result, the justification is not perfect and lines can be a few pixels too short.




We are now making free apps with no ads, and are relying on donations for revenue.

Please check out our apps on Google Play and the Amazon App Store.

You can make a donation through a dedicated app with Google Play in-app-billing or Amazon in-app-purchasing.


Copyright 2013 UNCOPT LLC.

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

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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.