:page_facing_up: Android Text Full Jusiftication / Wrapping / Justify / Hyphenate - V2.0

Overview

LIBRARY IS NO LONGER MAINTAINED

If you want to adopt + maintain this library, please drop me a message - [email protected]

Gittip Android Arsenal Build Status Maven Central
Logo

Android Full Justification

About

This library will provide you a way to justify text. It supports both plain text and Spannables. Additionally, the library can auto-hyphentate your displayed content (thanks to @muriloandrade).

Compatible for Android 2.2 to 5.X

Other Libraries

Screenshot

Preview

Demo

Imgur

#Recent 01/11/2015 ► Added support for very long documents with fading and progress listener
01/10/2015 ► Refractored / renamed classes
01/04/2015 ► Improved caching support which allows for smooth scrolling
01/02/2015 ► Added XML attributes for DocumentView

Wiki

For examples, tests, and API refer to the Android-TextJustify Wiki.

Install

Just add to your build.gradle

dependencies {
    compile 'com.github.bluejamesbond:textjustify-android:2.1.6'
}

Known Issues

Status Issues
CLOSED Scroll caching for very large documents i.e. > 4000 paragaphs
OPEN Add letter-spacing feature like CSS
OPEN Improve text strike-through
OPEN Improve text underline
CLOSED Support more features like TextView in terms of Paint settings
Comments
  • Setting text with spannable, wont update unless i click and drag on textview

    Setting text with spannable, wont update unless i click and drag on textview

    private Spannable highlightString(String original, String search) {
        String rep = original;
        String newS = rep.replace(search, "<font color='red'>" + search + "</font>");
        ArticleBuilder amb = new ArticleBuilder();
        amb.append(
                newS
                , false, new RelativeSizeSpan(1f), new JustifiedSpan()
        );
        return amb;
        }
    

    I am setting the text of my document view using the above which results in:

    http://puu.sh/fepY7/a2edfbad2a.png

    However, when i select a new line to highlight, NOTHING happens, setting the text view to ANY content, normal spannable string or otherwise, the view refuses to update, the only way i can get it to show the new value is to tap and drag on the view, how peculiar?

    Thanks!

    opened by broakenmedia 21
  • DocumentView in a row item of ListView is not triggering ListView.OnItemClick listener

    DocumentView in a row item of ListView is not triggering ListView.OnItemClick listener

    Hi, I'm having some problems when using DocumentView in a row item, it makes the whole row item not clickable. I fixed this by android:descendantFocusability="blocksDescendants" on the RelativeLayout. The problem however is that selecting the DocumentView does not select the Row Item, unlike using a normal TextView does. Clicking outside the DocumentView does indeed trigger the Row Item. What I want to achieve is that clicking the DocumentView, selects the Row Item similar to how it works when I use a normal TextView. Is this an ongoing issue or I'm doing something wrong?

    I'll be attaching my layout if that helps. screen shot 2015-01-24 at 10 12 29 am

    next-release 
    opened by polcham 16
  • Library not clear

    Library not clear

    To be honest, i've spent hours trying to find a way to make use of this library and to attached it to view.. it was so difficult, can you help on how?

    I want to make use of ArticleBuilder(), so how do i make reference to view where i have this --> <com.bluejamesbond.text.DocumentView xmlns:document="http://schemas.android.com/apk/res-auto" android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="+id/instruction" />

    here is my java code

        a = new ArticleBuilder();
        a.append("WHO: Ebola Cases",
                false, new RelativeSizeSpan(2f), new StyleSpan(Typeface.BOLD))
                .append("<font color=0xFFC801>Sam Frizell</font><font color=0x888888> @Sam_Frizell  Oct. 25, 2014</font>",
                        false, new RelativeSizeSpan(0.8f), new StyleSpan(Typeface.BOLD))
                .append("In New York and New Jersey, governors Andrew Cuomo and Chris Christie have implemented controversial quarantines on all healthcare workers returning from West Africa after a doctor returning from Guinea contracted the disease and was diagnosed in New York.",
                        true, new RelativeSizeSpan(1f), new JustifiedSpan());
    
        DocumentView documentView = new DocumentView(getActivity(), R.id.instruction);  // Support spanned text
        documentView.setText(a); // Set to `true` to enable justification
    

    Doing it this way generate error

    Process: com.samsoft.cbc.studio, PID: 2834
    java.lang.NullPointerException
            at com.bluejamesbond.text.DocumentView$MeasureTask.onPostExecute(DocumentView.java:729)
            at com.bluejamesbond.text.DocumentView$MeasureTask.onPostExecute(DocumentView.java:685)
            at android.os.AsyncTask.finish(AsyncTask.java:632)
            at android.os.AsyncTask.access$600(AsyncTask.java:177)
            at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
    

    Any Solution on how to relate the view and the java code together, if i'm not doing it right.. please let me know. Thanks

    opened by samsoft00 16
  • Problem in option 2

    Problem in option 2

    I have problem this is link http://stackoverflow.com/questions/21202560/justify-text-in-textview-not-working-properly I have asked this question on stackoverflow but no one answer me.

    opened by john2112 15
  • Khmer not support

    Khmer not support

    Thank you so much for you library it is very helpful, but I got the problem when I use it with Khmer unicode. it doesn't working well. Can you please help me to to finger-out this problem. Thank you. Bunthoeun

    screen shot 2015-01-19 at 2 55 13 pm screenshot_2015-01-19-15-04-37

    opened by bpbunthoeun 13
  • Upload to maven central?

    Upload to maven central?

    Are you planning to upload this neat library to Maven Central? It would certainly make it more accessible for new developers to include the project with a one-liner in their gradle config. :)

    opened by ened 9
  • Spacing between words

    Spacing between words

    Justify text working on every device. But in some lines spacing between words fine and in some lines so much spacing. So extra spacing not looks good. Any solution for this?

    opened by john2112 9
  • Hyphenation

    Hyphenation

    Hi, I saw you made some amazing improvements in the new version of TextJustify, including the hyphenation, congratulations.

    Now I’m trying to implement this new version into my project but I’m facing an issue.

    If I right understand, the new way to get texts hyphenatated is:

    docView.getDocumentLayoutParams().setHyphenator(new Hyphenator(HyphenPattern.PT));
    docView.getDocumentLayoutParams().setHyphenated(true);
    

    This way, nothing happens, seems like LayoutParams.setHyphenator() method will always just return (without set). So I made some changes in this method and have the hyphenator settled.

    But now, I’m facing an Exception:

    java.util.ConcurrentModificationException at java.util.LinkedList$LinkIterator.next(LinkedList.java:124) at com.bluejamesbond.text.DocumentLayout.measure(DocumentLayout.java:222) at com.bluejamesbond.text.DocumentView.onMeasure(DocumentView.java:142) …

    Let me know if you need more details. Thank you.

    opened by muriloandrade 8
  • Spannable TextView with different colors

    Spannable TextView with different colors

    Given the following program:

    TextViewEx textView = (TextViewEx) findViewById(R.id.textView1); textView.setText("", true); Spannable span = Spannable.Factory.getInstance().newSpannable("Hello "); span.setSpan(new ForegroundColorSpan(Color.RED), 0, span.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); span = Spannable.Factory.getInstance().newSpannable(" world!"); span.setSpan(new ForegroundColorSpan(Color.GREEN), 0, span.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

    The output text is printed without any red or green color. Is there any way to solve the justifying of a TextViewEx with different styles?

    opened by andresgr 8
  • Library is a memory hog

    Library is a memory hog

    I have done some simple testing of the memory resources of this app and the standard TextView implementation. I only used this app for justification purposes.

    This libary, used to replace just one TextView, eats up 15MB of memory. This seems like a lot extra. While there might not be much that you can do, you might be able to make a light-version of this library that focuses on the simple use-cases your library is can be used for - like just justifing text.

    opened by ciscorucinski 7
  • Text inside ScrollView not reaching to the end

    Text inside ScrollView not reaching to the end

    When you put the TextViewEx inside a ScrollVIew the scroller doesnt show complete text, it leaves some behind, its like its not calculating the height properly.

    This is the beggining of the textViewEx screenshot 2014-05-03 17 03 00

    This is the bottom, and the scroller its maxed out, and as you can see some of the text is missing. screenshot 2014-05-03 17 03 18

    opened by ghost 7
  • Pagination

    Pagination

    What's done:

    • Add pagination support
    • Add long formatted paginated text example
    • Fix some common library bugs

    Known bugs:

    • On switch orientation, text draw failed with IndexOutOfBoundsException
    • Pagination works correctly only if cacheConfig == CacheConfig.NO_CACHE
    opened by Nikita-Boyarskikh 0
  • bug: java.lang.IllegalArgumentException: width and height must be > 0

    bug: java.lang.IllegalArgumentException: width and height must be > 0

    It does not always happen, sometime when giving compilation

    log

                                         java.lang.IllegalArgumentException: width and height must be > 0
                                             at android.graphics.Bitmap.createBitmap(Bitmap.java:829)
                                             at android.graphics.Bitmap.createBitmap(Bitmap.java:808)
                                             at android.graphics.Bitmap.createBitmap(Bitmap.java:775)
                                             at com.bluejamesbond.text.DocumentView$CacheBitmap.<init>(DocumentView.java:809)
                                             at com.bluejamesbond.text.DocumentView.allocateResources(DocumentView.java:632)
                                             at com.bluejamesbond.text.DocumentView.onMeasure(DocumentView.java:477)
                                             at android.view.View.measure(View.java:18805)
                                             at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)
                                             at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)
                                             at android.view.View.measure(View.java:18805)
                                             at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
                                             at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                                             at android.support.v7.widget.CardView.onMeasure(CardView.java:218)
                                             at android.view.View.measure(View.java:18805)
                                             at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
                                             at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
                                             at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
                                             at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
                                             at android.view.View.measure(View.java:18805)
                                             at android.support.v4.widget.NestedScrollView.measureChildWithMargins(NestedScrollView.java:1446)
                                             at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                                             at android.support.v4.widget.NestedScrollView.onMeasure(NestedScrollView.java:512)
                                             at android.view.View.measure(View.java:18805)
                                             at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
                                             at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                                             at android.view.View.measure(View.java:18805)
                                             at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)
                                             at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)
                                             at android.view.View.measure(View.java:18805)
                                             at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
                                             at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:714)
                                             at android.support.design.widget.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:91)
                                             at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:1361)
                                             at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:784)
                                             at android.view.View.measure(View.java:18805)
                                             at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1060)
                                             at android.view.View.measure(View.java:18805)
                                             at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
                                             at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                                             at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
                                             at android.view.View.measure(View.java:18805)
                                             at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
                                             at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
                                             at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
                                             at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
                                             at android.view.View.measure(View.java:18805)
                                             at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
                                             at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                                             at android.view.View.measure(View.java:18805)
                                             at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
                                             at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
                                             at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
                                             at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
                                             at android.view.View.measure(View.java:18805)
                                             at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
                                             at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                                             at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643)
                                         	at android.view.V
    java.lang.illegalargumentexception: width and height must be > 0                                         at android.graphics.Bitmap.createBitmap(Bitmap.java:829)                                         at android.graphics.Bitmap.createBitmap(Bitmap.java:808)                                         at android.graphics.Bitmap.createBitmap(Bitmap.java:775)                                         at com.bluejamesbond.text.DocumentView$CacheBitmap.<init>(DocumentView.java:809)                                         at com.bluejamesbond.text.DocumentView.allocateResources(DocumentView.java:632)                                         at com.bluejamesbond.text.DocumentView.onMeasure(DocumentView.java:477)                                         at android.view.View.measure(View.java:18805)                                         at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)                                         at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)                                         at android.view.View.measure(View.java:18805)                                         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)                                         at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)                                         at android.support.v7.widget.CardView.onMeasure(CardView.java:218)                                         at android.view.View.measure(View.java:18805)                                         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)                                         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)                                         at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)                                         at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)                                         at android.view.View.measure(View.java:18805)                                         at android.support.v4.widget.NestedScrollView.measureChildWithMargins(NestedScrollView.java:1446)                                         at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)                                         at android.support.v4.widget.NestedScrollView.onMeasure(NestedScrollView.java:512)                                         at android.view.View.measure(View.java:18805)                                         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)                                         at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)                                         at android.view.View.measure(View.java:18805)                                         at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)                                         at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)                                         at android.view.View.measure(View.java:18805)                                         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)                                         at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:714)                                         at android.support.design.widget.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:91)                                         at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:1361)                                         at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:784)                                         at android.view.View.measure(View.java:18805)                                         at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1060)                                         at android.view.View.measure(View.java:18805)                                         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)                                         at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)                                         at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)                                         at android.view.View.measure(View.java:18805)                                         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)                                         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)                                         at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)                                         at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)                                         at android.view.View.measure(View.java:18805)                                         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)                                         at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)                                         at android.view.View.measure(View.java:18805)                                         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)                                         at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)                                         at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)                                         at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)                                         at android.view.View.measure(View.java:18805)                                         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)                                         at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)                                         at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643)                                     at android.view.V
    
    opened by webserveis 0
  • Report crash .onMeasure

    Report crash .onMeasure

    I recive this report in one app:

    Huawei P8 Lite (hwALE-H), 2048MB RAM, Android 6.0

    java.lang.IllegalArgumentException: at android.graphics.Bitmap.createBitmap (Bitmap.java:850) at android.graphics.Bitmap.createBitmap (Bitmap.java:829) at android.graphics.Bitmap.createBitmap (Bitmap.java:796) at com.bluejamesbond.text.DocumentView$CacheBitmap.<init> (SourceFile:809) at com.bluejamesbond.text.DocumentView.allocateResources (SourceFile:632) at com.bluejamesbond.text.DocumentView.onMeasure (SourceFile:477) at android.view.View.measure (View.java:18930) at android.widget.RelativeLayout.measureChildHorizontal (RelativeLayout.java:715) at android.widget.RelativeLayout.onMeasure (RelativeLayout.java:461) at android.view.View.measure (View.java:18930) at android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5976) at android.widget.FrameLayout.onMeasure (FrameLayout.java:194) at android.support.v7.widget.CardView.onMeasure (SourceFile:218) at android.view.View.measure (View.java:18930) at android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5976) at android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1486) at android.widget.LinearLayout.measureVertical (LinearLayout.java:765) at android.widget.LinearLayout.onMeasure (LinearLayout.java:647) at android.view.View.measure (View.java:18930) at android.support.v4.widget.NestedScrollView.measureChildWithMargins (SourceFile:1446) at android.widget.FrameLayout.onMeasure (FrameLayout.java:194) at android.support.v4.widget.NestedScrollView.onMeasure (SourceFile:512) at android.view.View.measure (View.java:18930) at android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5976) at android.widget.FrameLayout.onMeasure (FrameLayout.java:194) at android.view.View.measure (View.java:18930) at android.widget.RelativeLayout.measureChildHorizontal (RelativeLayout.java:715) at android.widget.RelativeLayout.onMeasure (RelativeLayout.java:461) at android.view.View.measure (View.java:18930) at android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5976) at android.support.design.widget.CoordinatorLayout.onMeasureChild (SourceFile:714) at android.support.design.widget.j.onMeasureChild (SourceFile:91) at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onMeasureChild (SourceFile:1361) at android.support.design.widget.CoordinatorLayout.onMeasure (SourceFile:784) at android.view.View.measure (View.java:18930) at android.support.v4.widget.DrawerLayout.onMeasure (SourceFile:1060) at android.view.View.measure (View.java:18930) at android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5976) at android.widget.FrameLayout.onMeasure (FrameLayout.java:194) at android.support.v7.widget.ContentFrameLayout.onMeasure (SourceFile:139) at android.view.View.measure (View.java:18930) at android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5976) at android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1486) at android.widget.LinearLayout.measureVertical (LinearLayout.java:765) at android.widget.LinearLayout.onMeasure (LinearLayout.java:647) at android.view.View.measure (View.java:18930) at android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5976) at android.widget.FrameLayout.onMeasure (FrameLayout.java:194) at android.view.View.measure (View.java:18930) at android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5976) at android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1486) at android.widget.LinearLayout.measureVertical (LinearLayout.java:765) at android.widget.LinearLayout.onMeasure (LinearLayout.java:647) at android.view.View.measure (View.java:18930) at android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5976) at android.widget.FrameLayout.onMeasure (FrameLayout.java:194) at com.android.internal.policy.PhoneWindow$DecorView.onMeasure (PhoneWindow.java:2705) at android.view.View.measure (View.java:18930) at android.view.ViewRootImpl.performMeasure (ViewRootImpl.java:2154) at android.view.ViewRootImpl.measureHierarchy (ViewRootImpl.java:1248) at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1484) at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1139) at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:6238) at android.view.Choreographer$CallbackRecord.run (Choreographer.java:884) at android.view.Choreographer.doCallbacks (Choreographer.java:696) at android.view.Choreographer.doFrame (Choreographer.java:631) at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:870) at android.os.Handler.handleCallback (Handler.java:743) at android.os.Handler.dispatchMessage (Handler.java:95) at android.os.Looper.loop (Looper.java:150) at android.app.ActivityThread.main (ActivityThread.java:5621) at java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:794) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:684)

    opened by webserveis 0
  • Image Span test does not work

    Image Span test does not work

    Hi , thanks for sharing this library,but I was confronted with a strange issue,

    After running your example, I sound some feature did not work ,like BackgroundSpan ,ImageSpan, did you consider to make another release version to fix these features?
    Thanks a lot!

    opened by Berlin-newbee 0
Releases(V2.1.1)
A TextView that automatically resizes text to fit perfectly within its bounds.

AutoFitTextView A TextView that automatically resizes text to fit perfectly within its bounds. Usage dependencies { compile 'me.grantland:autofitt

Grantland Chew 4.2k Jan 8, 2023
Floating hint from edit text - inspired by Matt D. Smith's design: http://dribbble.com/shots/1254439--GIF-Mobile-Form-Interaction?list=users

Float Labeled EditText Simple implementation of a Float Labeled EditText: An Android ViewGroup which uses a child EditText and puts the hint on top of

Wrapp Archive 1.1k Nov 14, 2022
A periodic text updating library

RotatingText Rotating text is an Android library that can be used to make text switching painless and beautiful, with the use of interpolators, typefa

Mobile Development Group 1.6k Dec 30, 2022
A different beautiful Floating Edit Text

MaterialTextField A different beautiful Floating Edit Text Usage Surround your EditText by a MaterialTextField <com.github.florent37.materialtextfield

Florent CHAMPIGNY 1.5k Nov 11, 2022
() An Android TextView with a shimmering effect

Shimmer for Android This library is DEPRECATED, as I don't have time to mainatin it anymore. But feel free to go through the code and copy that into y

Romain Piel 2k Jan 9, 2023
An easy, flexible way to add a shimmering effect to any view in an Android app.

Shimmer for Android Shimmer is an Android library that provides an easy way to add a shimmer effect to any view in your Android app. It is useful as a

Facebook 5.1k Dec 31, 2022
() Android experiment showing a sinking TextView

Titanic for Android This library is DEPRECATED, as I don't have time to mainatin it anymore. But feel free to go through the code and copy that into y

Romain Piel 1.8k Dec 15, 2022
RoundedLetterView like the one in Android 5.0 Contacts app

RoundedLetterView RoundedLetterView like the one in Android 5.0 Contacts app Attributes to choose from: rlv_titleText - The text in the first row. rlv

Pavlos-Petros Tournaris 653 Nov 11, 2022
Android's TextView that can expand/collapse like the Google Play's app description

ExpandableTextView ExpandableTextView is an Android library that allows developers to easily create an TextView which can expand/collapse just like th

Manabu S. 4k Jan 8, 2023
This is based on an open source autosizing textview for Android.

SizeAdjustingTextView This is based on an open source autosizing textview for Android I found a few weeks ago. The initial approach didn't resize mult

Elliott Chenger 255 Dec 29, 2022
Android Library to make it easy to create CodeEditor or IDE that support any languages and themes

CodeView Android Library to make it easy to create your CodeEditor or IDE for any programming language even for your programming language, just config

Amr Hesham 294 Jan 6, 2023
:page_facing_up: Android Text Full Jusiftication / Wrapping / Justify / Hyphenate - V2.0

LIBRARY IS NO LONGER MAINTAINED If you want to adopt + maintain this library, please drop me a message - [email protected] Android Full Justific

Mathew Kurian 1.9k Dec 29, 2022
A library that gives full control over text related technologies such as bidirectional algorithm, open type shaping, text typesetting and text rendering

Tehreer-Android Tehreer is a library which gives full control over following text related technologies. Bidirectional Algorithm OpenType Shaping Engin

Tehreer 61 Dec 15, 2022
Twidere-Android Twidere is a powerful twitter client for Android 1.6+ 1 , which gives you a full Holo experience and nearly full Twitter's feature.

Twidere for Android Material Design ready and feature rich Twitter/Mastodon/Fanfou app for Android 4.1+. Enjoy Fediverse now! Twidere-Android is maint

Twidere Project 2.7k Jan 2, 2023
Speech-Text Converter is a simple task that enable the user to convert the speech to text or convert text to speech (by Mic)

Speech-Text Converter About Speech-Text Converter is a simple task that enable the user to convert the speech to text or convert text to speech (by Mi

Kareem Saeed 1 Oct 21, 2021
Lucilla - Fast, efficient, in-memory Full Text Search for Kotlin

Lucilla Lucilla is an in-memory Full Text Search library for Kotlin. It allows t

Kshitij Chauhan 111 Jan 6, 2023
A editable text with a constant text/placeholder for Android.

ParkedTextView A EditText with a constant text in the end. How to use <com.goka.parkedtextview.ParkedTextView xmlns:app="http://schemas.android.co

goka 270 Nov 11, 2022
A editable text with a constant text/placeholder for Android.

ParkedTextView A EditText with a constant text in the end. How to use <com.goka.parkedtextview.ParkedTextView xmlns:app="http://schemas.android.co

goka 270 Nov 11, 2022
RTL marquee text view android right to left moving text - persian - farsi - arabic - urdo

RTL marquee text view android right to left moving text - persian - farsi - arabic - urdo

mehran elyasi 4 Feb 14, 2022