: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)
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
Android Full Justification

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

Mathew Kurian 1.9k Dec 29, 2022
RichEditor for Android is a beautiful Rich Text WYSIWYG Editor for Android.

RichEditor for Android is a beautiful Rich Text WYSIWYG Editor for Android. Looking for iOS? Check out cjwirth/RichEditorView Supported Functions Bold

Daichi Furiya 6k Jan 2, 2023
MarkdownView is an Android webview with the capablity of loading Markdown text or file and display it as HTML, it uses MarkdownJ and extends Android webview.

MarkdownView is an Android webview with the capablity of loading Markdown text or file and display it as HTML, it uses MarkdownJ and extends Android webview.

Feras Alnatsheh 1k Dec 20, 2022
Android form edit text is an extension of EditText that brings data validation facilities to the edittext.

Android Form EditText Android form edit text is an extension of EditText that brings data validation facilities to the edittext. Example App I built a

Andrea 1.5k Dec 14, 2022
[DISCONTINUED] Rrich text editor for android platform. 安卓富文本编辑器,暂停维护

icarus-android Maybe the best rich text editor on android platform. Base on Simditor Features Alignment (left/center/right) Bold Blockquote Code Horiz

Dyson Woo 739 Sep 5, 2022
Android library contain custom realisation of EditText component for masking and formatting input text

Masked-Edittext Masked-Edittext android library EditText widget wrapper add masking and formatting input text functionality. Install Maven <dependency

Evgeny Safronov 600 Nov 29, 2022
An address-autocompleting text field for Android

android-PlacesAutocompleteTextView An AutocompleteTextView that interacts with the Google Maps Places API to provide location results and caches selec

SeatGeek 283 Dec 28, 2022
Chips EditText, Token EditText, Bubble EditText, Spannable EditText and etc.. There are many names of this control. Here I develop easy to understand , modify and integrate Chips Edit Text widget for Android

Chips EditText Library Chips EditText, Token EditText, Bubble EditText, Spannable EditText and etc.. There are many names of this control. Here I deve

kpbird 381 Nov 20, 2022
AutosizeEditText for Android is an extension of native EditText that offer a smooth auto scale text size.

AutoscaleEditText AutosizeEditText for Android is an extension of native EditText that offer a smooth auto scale text size. Latest Version How to use

Txus Ballesteros 354 Nov 28, 2022
Add text masking functionality to Android EditText. It will prevent user from inserting not allowed signs, and format input as well.

MaskFormatter MaskFormatter adds mask functionality to your EditText. It will prevent user from inserting not allowed signs, and format input as well.

Azimo Labs 161 Nov 25, 2022
Simple way to create linked text, such as @username or #hashtag, in Android TextView and EditText

Simple Linkable Text Simple way to create link text, such as @username or #hashtag, in Android TextView and EditText Installation Gradle Add dependenc

Aditya Pradana Sugiarto 76 Nov 29, 2022
Markdown Text for Android Jetpack Compose 📋.

Markdown Text for Android Jetpack Compose ??.

Jeziel Lago 250 Jan 4, 2023
Dealing with Android Text by simple way to get high performance.

Gapo Android RichText RichText supports Hashtag, Mention, Url, Phone Number, Email, Markdown, Custom Span, SeeMore/SeeLess by limited line or length,

GapoWork 8 Oct 20, 2021
Android Custom View for prevent the view behind on-screen keyboard when edit text is focused

Group Focusable Prevent the view behind on-screen keyboard when edit text is focused in Android UI Download Gradle implementation 'com.akexorcist:grou

Akexorcist 8 Jun 22, 2022
Dealing with Android Text by simple way to get high performance.

Gapo Android RichText RichText supports Hashtag, Mention, Url, Phone Number, Email, Markdown, Custom Span, SeeMore/SeeLess by limited line or length,

GapoWork 8 Oct 20, 2021
A simple Android library to protect part of text using Span

Text Protector A simple Android library to "protect" part of text using Span What is this? This is a small library for replacing part of a text in a T

Oleg Nestyuk 4 May 16, 2022
Light-weighted, convenient implementation of expandable text view that supports expanding & collapsing animations for Android projects

ExpandableTextView Light-weighted, convenient implementation of expandable text view that supports expanding & collapsing animations for Android proje

Giang H. Pham 22 Jan 6, 2023
Animation effects to text, not really textview

HTextView Animation effects with custom font support to TextView see iOS Effects see Flutter Effects Screenshot type gif Scale Evaporate Fall Line Typ

hanks 5.5k Jan 5, 2023