Animation effects to text, not really textview

Last update: Jun 19, 2022

HTextView

Animation effects with custom font support to TextView

see iOS Effects
see Flutter Effects


Screenshot

type gif
Scale
Evaporate
Fall
Line
Typer
Rainbow
Fade

Usage

def htextview_version = "0.1.6"
// as 3.0 use implementation
compile "com.hanks:htextview-base:$htextview_version"        // base library

compile "com.hanks:htextview-fade:$htextview_version"        // optional
compile "com.hanks:htextview-line:$htextview_version"        // optional
compile "com.hanks:htextview-rainbow:$htextview_version"     // optional
compile "com.hanks:htextview-typer:$htextview_version"       // optional

compile "com.hanks:htextview-scale:$htextview_version"       // optional
compile "com.hanks:htextview-evaporate:$htextview_version"   // optional
compile "com.hanks:htextview-fall:$htextview_version"        // optional

line

<com.hanks.htextview.line.LineTextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="right"
    android:paddingRight="10dp"
    android:text="This is LineTextView\nToday is Monday"
    android:textSize="16sp"
    app:animationDuration="3000"
    app:lineColor="#1367bc"
    app:lineWidth="4dp"/>

fade

<com.hanks.htextview.fade.FadeTextView
    android:layout_width="240dp"
    android:layout_height="150dp"
    android:gravity="left"
    android:letterSpacing="0.08"
    android:lineSpacingMultiplier="1.3"
    android:text="This is FadeTextView"
    android:textColor="#fff"
    android:textSize="20sp"
    app:animationDuration="1500"/>

typer

<com.hanks.htextview.typer.TyperTextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="this is init sentence."
    app:charIncrease="3"
    app:typerSpeed="80"/>

rainbow

<com.hanks.htextview.rainbow.RainbowTextView
    android:layout_width="120dp"
    android:layout_height="wrap_content"
    android:gravity="right"
    android:text="this is init sentence"
    android:textSize="20sp"
    app:colorSpace="150dp"
    app:colorSpeed="4dp"/>

scale (single line)

<com.hanks.htextview.scale.ScaleTextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="this is init sentence"
    android:textSize="16sp"/>

evaporate (single line)

<com.hanks.htextview.evaporate.EvaporateTextView
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:gravity="center"
    android:paddingTop="8dp"
    android:text="this is init sentence"
    android:textSize="20sp"/>

fall (single line)

<com.hanks.htextview.fall.FallTextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="20dp"
    android:text="this is init sentence"
    android:textSize="16sp"/>

Third Party Bindings

React Native

You may now use this library with React Native via the module here

License

This library is licensed under the Apache Software License, Version 2.0.

See LICENSE for full of the license text.

Copyright (C) 2015 [Hanks](https://github.com/hanks-zyh)

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.

GitHub

https://github.com/hanks-zyh/HTextView
Comments
  • 1. Crash using EvaporateTextView!

        EvaporateTextView bText = (EvaporateTextView) myInflater.findViewById(R.id.bText);
        bText .animateText("Hi, There!");
    
          <com.hanks.htextview.evaporate.EvaporateTextView
                android:id="@+id/bText"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:textColor="@color/white"
                android:textSize="20sp" />
    
    

    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'float android.text.Layout.getLineLeft(int)' on a null object reference at com.hanks.htextview.evaporate.EvaporateText.animateText(EvaporateText.java:52) at com.hanks.htextview.evaporate.EvaporateTextView.animateText(EvaporateTextView.java:46) at com.swish.perfectshot.fragment.IntroFragment.onCreateView(IntroFragment.java:83)

    Reviewed by kazaky at 2017-04-16 09:54
  • 2. ScaleText crash

    ScaleTextView mToolbarTitle = (ScaleTextView) findViewById(R.id.toolbar_title);
    mToolbarTitle.animateText(title);
    
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'float android.text.Layout.getLineLeft(int)' on a null object reference
                                                                              at com.hanks.htextview.scale.ScaleText.animateText(ScaleText.java:49)
                                                                              at com.hanks.htextview.scale.ScaleTextView.animateText(ScaleTextView.java:48)
    
    Reviewed by Kolyall at 2017-06-08 09:25
  • 3. out of memory error

    I have placed the animated view inside of a fragment that is hold by a ViewPager. When I make the fragment visible for the first time everything is alright. But when the fragment gets reloaded I get the following issue:

    FATAL EXCEPTION: main Process: com.ads.adstimer, PID: 14680 java.lang.OutOfMemoryError: Failed to allocate a 2007612 byte allocation with 1750816 free bytes and 1709KB until OOM at dalvik.system.VMRuntime.newNonMovableArray(Native Method) at android.graphics.Bitmap.nativeCreate(Native Method) at android.graphics.Bitmap.createBitmap(Bitmap.java:831) at android.graphics.Bitmap.createBitmap(Bitmap.java:808) at android.graphics.Bitmap.createBitmap(Bitmap.java:739) at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:615) at com.hanks.htextview.animatetext.AnvilText.animateStart(AnvilText.java:67) at com.hanks.htextview.animatetext.HText.animateText(HText.java:74) at com.hanks.htextview.HTextView.animateText(HTextView.java:97) at com.ads.adstimer.fragment.Registration.Slides.FragmentScanCode.onCreateView(FragmentScanCode.java:37) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) at android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1426) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:728) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613) at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570) at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141) at android.support.v4.view.ViewPager.populate(ViewPager.java:1106) at android.support.v4.view.ViewPager.populate(ViewPager.java:952) at android.support.v4.view.ViewPager$3.run(ViewPager.java:251) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) at android.view.Choreographer.doCallbacks(Choreographer.java:670) at android.view.Choreographer.doFrame(Choreographer.java:603) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

    I hope, you can solve it. I really like that library, good job!

    Reviewed by martinprzibylla at 2015-12-28 23:23
  • 4. a crash in scaleText

    this is the detail message: #3485 java.lang.NullPointerException Attempt to invoke virtual method 'float android.text.Layout.getLineLeft(int)' on a null object reference com.hanks.htextview.base.HText$1.onGlobalLayout(HText.java:55)

    how can i fix this crash?

    Reviewed by chenyusheng at 2017-09-29 02:43
  • 5. Changing text color

    Text color is not dynamic, the value set in xml stays the same. For example, if programmatically i decide to change text color, it doesn't work. I tried with .setTextColor() and with SpannableString ForegroundColorSpan method.

    Reviewed by usernotnull at 2016-08-05 20:51
  • 6. 直接使用rainbow动画样式会报NullPointException

    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.LinearGradient.setLocalMatrix(android.graphics.Matrix)' on a null object reference at com.hanks.htextview.animatetext.RainBowText.drawFrame(RainBowText.java:49) at com.hanks.htextview.animatetext.HText.onDraw(HText.java:80) at com.hanks.htextview.HTextView.onDraw(HTextView.java:112) at android.view.View.draw(View.java:16468) at android.view.View.updateDisplayListIfDirty(View.java:15398) at android.view.View.getDisplayList(View.java:15420) at android.view.View.draw(View.java:16190) at android.view.ViewGroup.drawChild(ViewGroup.java:3713) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) at android.view.View.updateDisplayListIfDirty(View.java:15393) at android.view.View.getDisplayList(View.java:15420) at android.view.View.draw(View.java:16190) at android.view.ViewGroup.drawChild(ViewGroup.java:3713) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) at android.view.View.updateDisplayListIfDirty(View.java:15393) at android.view.View.getDisplayList(View.java:15420) at android.view.View.draw(View.java:16190) at android.view.ViewGroup.drawChild(ViewGroup.java:3713) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) at android.view.View.updateDisplayListIfDirty(View.java:15393) at android.view.View.getDisplayList(View.java:15420) at android.view.View.draw(View.java:16190) at android.view.ViewGroup.drawChild(ViewGroup.java:3713) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) at android.view.View.updateDisplayListIfDirty(View.java:15393) at android.view.View.getDisplayList(View.java:15420) at android.view.View.draw(View.java:16190) at android.view.ViewGroup.drawChild(ViewGroup.java:3713) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) at android.view.View.updateDisplayListIfDirty(View.java:15393) at android.view.View.getDisplayList(View.java:15420) at android.view.View.draw(View.java:16190) at android.view.ViewGroup.drawChild(ViewGroup.java:3713) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) at android.view.View.draw(View.java:16471) at android.widget.FrameLayout.draw(FrameLayout.java:598) at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:3107) at android.view.View.updateDisplayListIfDirty(View.java:15398) at android.view.View.getDisplayList(View.java:15420) at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:310) at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:316) at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:355) at android.view.ViewRootImpl.draw(ViewRootImpl.java:2925) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2722) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2309) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1298) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6982) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:821) at android.view.Choreographer.doCallbacks(Choreographer.java:606) at android.view.Choreographer.doFrame(Choreographer.java:576) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:807) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:6872) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

    Reviewed by yuanshuaiding at 2016-08-04 02:49
  • 7. gravity="start" isn't working

    I can't align the text inside the animated View to the left. It aligns top. I don't know if it's supposed to work only with gravity "center", because "start" messes with the animation of the characters somehow.

    Reviewed by ndvalkov at 2016-02-26 13:05
  • 8. Urgent issues with the readme!

    There is an urgent issue with the readme in this repo.

    A lot of people suffer from epilepsy and seizures from seeing unexpected moving images quickly, which the readme has a lot of. I'm a representative from Social Justice Code (http://socialjusticecode.org) and we suggest adding a trigger warning to the beginning of the readme, warning users before they scroll down. In addition the content has a few issues, including using cis-terms like "boy" as well as age-ist terms like "old" which may turn away or scare younger viewers, or ones who do not identify as boys. We suggest using a neutral term like "they," or if an oppressed person asks for their pronoun to be included, to generate a new image for them and put it on the site.

    Thank you for your attention to this matter and helping make Github a better place for all people (✿ -‿-)

    Reviewed by MissAbbie at 2015-12-25 06:35
  • 9. Error inflating class com.hanks.htextview.HTextView

    Hi, i started to use your library and i find this error with basic setup that you provided.

    My layout is:

    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:htext="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.htextviewexample.MainActivity">

    <com.hanks.htextview.HTextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:background="#000000"
        android:gravity="center"
        android:textColor="#FFFFFF"
        android:textSize="30sp"
        htext:animateType="anvil"
        htext:fontAsset="fonts/font-name.ttf" />
    

    </android.support.constraint.ConstraintLayout>

    My gradle: `apply plugin: 'com.android.application'

    android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.example.htextviewexample" minSdkVersion 15 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } }

    dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.2.0' compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4' compile 'hanks.xyz:htextview-library:0.1.5' testCompile 'junit:junit:4.12' } `

    And MainActivity:

    `package com.example.htextviewexample;

    import android.support.v7.app.AppCompatActivity; import android.os.Bundle;

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
    }
    

    } `

    The Exception is: FATAL EXCEPTION: main Process: com.example.htextviewexample, PID: 6243 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.htextviewexample/com.example.htextviewexample.MainActivity}: android.view.InflateException: Binary XML file line #9: Error inflating class com.hanks.htextview.HTextView

    Reviewed by KonradSzewczuk at 2017-03-12 18:59
  • 10. hello,gay,my app show OutOfMemoryError in the HTextView.animateText

    version: compile 'hanks.xyz:htextview-library:0.1.3'

    exception stack:

    java.lang.OutOfMemoryError at android.graphics.Bitmap.nativeCreate(Native Method) at android.graphics.Bitmap.createBitmap(Bitmap.java:726) at android.graphics.Bitmap.createBitmap(Bitmap.java:703) at android.graphics.Bitmap.createBitmap(Bitmap.java:636) at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:516) at com.hanks.htextview.animatetext.AnvilText.animateStart(AnvilText.java:67) at com.hanks.htextview.animatetext.HText.animateText(HText.java:74) at com.hanks.htextview.HTextView.animateText(HTextView.java:97) at com.antzb.fragment.AntMapFragment.showHotActive(AntMapFragment.java:192)

    Reviewed by huiming666 at 2016-04-07 06:31
  • 11. How set text color and background in pixelate type?

    <com.hanks.htextview.HTextView android:id="@+id/title_htv" android:layout_width="match_parent" android:layout_height="100dp" android:layout_centerInParent="true" android:gravity="center" android:background="@color/primary" android:textColor="#FFFFFF" android:textSize="30sp" htext:animateType="pixelate" />

    This part gives white background and black text

    Reviewed by nominalista at 2016-02-28 15:31
  • 12. Shaders are not working

    No Matter where you place shade the shaders is not working in this library.

    Shader textShader=new LinearGradient(0, 0, 0, 20, new int[]{Color.GREEN,Color.BLUE}, new float[]{0, 1}, Shader.TileMode.REPEAT);

        getPaint().setShader(textShader);
    

    normal textview it is working.

    Reviewed by vidvivek at 2020-08-19 15:59
  • 13. Fatal Exception: java.lang.NullPointerException

    Fatal Exception: java.lang.NullPointerException Attempt to invoke virtual method 'int android.text.Layout.getLineCount()' on a null object

    com.hanks.htextview.fade.FadeText.drawFrame (FadeText.java:108) com.hanks.htextview.base.HText.onDraw (HText.java:114) com.hanks.htextview.fade.FadeTextView.onDraw (FadeTextView.java:63) android.view.View.draw (View.java:17469) ......................................................................

    Any way to fix this issue?

    Reviewed by Eternalculture at 2020-03-12 14:05
  • 14. Fatal Exception: java.lang.NullPointerException

    In some of the users in my application throws Fatal Exception: java.lang.NullPointerException. This exception happens in Android 6, 7, 8. This is statistics from Crashlytics. If you need some information from Crashlytics I can share with you.

    This is exception stack trace from Crashlytics:

    Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'float android.text.Layout.getLineLeft(int)' on a null object reference
           at com.hanks.htextview.scale.ScaleText.drawFrame(ScaleText.java:98)
           at com.hanks.htextview.base.HText.onDraw(HText.java:114)
           at com.hanks.htextview.scale.ScaleTextView.onDraw(ScaleTextView.java:44)
           at android.view.View.draw(View.java:17214)
           at android.view.View.updateDisplayListIfDirty(View.java:16196)
           at android.view.View.draw(View.java:16980)
           at android.view.ViewGroup.drawChild(ViewGroup.java:3729)
           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3515)
           at android.view.View.updateDisplayListIfDirty(View.java:16191)
           at android.view.View.draw(View.java:16980)
           at android.view.ViewGroup.drawChild(ViewGroup.java:3729)
           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3515)
           at android.view.View.updateDisplayListIfDirty(View.java:16191)
           at android.view.View.draw(View.java:16980)
           at android.view.ViewGroup.drawChild(ViewGroup.java:3729)
           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3515)
           at android.view.View.updateDisplayListIfDirty(View.java:16191)
           at android.view.View.draw(View.java:16980)
           at android.view.ViewGroup.drawChild(ViewGroup.java:3729)
           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3515)
           at android.view.View.updateDisplayListIfDirty(View.java:16191)
           at android.view.View.draw(View.java:16980)
           at android.view.ViewGroup.drawChild(ViewGroup.java:3729)
           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3515)
           at android.view.View.updateDisplayListIfDirty(View.java:16191)
           at android.view.View.draw(View.java:16980)
           at android.view.ViewGroup.drawChild(ViewGroup.java:3729)
           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3515)
           at android.view.View.updateDisplayListIfDirty(View.java:16191)
           at android.view.View.draw(View.java:16980)
           at android.view.ViewGroup.drawChild(ViewGroup.java:3729)
           at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3515)
           at android.view.View.draw(View.java:17217)
           at com.android.internal.policy.DecorView.draw(DecorView.java:757)
           at android.view.View.updateDisplayListIfDirty(View.java:16196)
           at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:648)
           at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:654)
           at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:762)
           at android.view.ViewRootImpl.draw(ViewRootImpl.java:2844)
           at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2652)
           at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2259)
           at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1298)
           at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6437)
           at android.view.Choreographer$CallbackRecord.run(Choreographer.java:876)
           at android.view.Choreographer.doCallbacks(Choreographer.java:688)
           at android.view.Choreographer.doFrame(Choreographer.java:623)
           at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:862)
           at android.os.Handler.handleCallback(Handler.java:754)
           at android.os.Handler.dispatchMessage(Handler.java:95)
           at android.os.Looper.loop(Looper.java:163)
           at android.app.ActivityThread.main(ActivityThread.java:6393)
           at java.lang.reflect.Method.invoke(Method.java)
           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
    

    This is my layout file

    <?xml version="1.0" encoding="utf-8"?>
    <layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
    
        <data>
    
            <import type="android.view.View" />
    
            <variable
                name="viewmodel"
                type="com.example.ui.welcome.WelcomeViewModel" />
        </data>
    
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">
    
            <ImageView
                android:layout_width="@dimen/_60sdp"
                android:layout_height="@dimen/_60sdp"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="@dimen/welcome_screen_logo_margin_top"
                app:srcCompat="@drawable/logo" />
    
            <com.hanks.htextview.scale.ScaleTextView
                android:id="@+id/welcome_header_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="@dimen/_26sdp"
                android:text="@string/static_text_welcome_header"
                android:textAlignment="center"
                android:textColor="@color/black"
                android:textSize="@dimen/_20ssp" />
    
            <com.hanks.htextview.scale.ScaleTextView
                android:id="@+id/welcome_footer_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:text="@string/static_text_welcome_footer"
                android:textAlignment="center"
                android:textColor="@color/black"
                android:textSize="@dimen/_20ssp" />
    
            <View
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1" />
    
            <com.hanks.htextview.scale.ScaleTextView
                android:id="@+id/welcome_begin_text"
                style="?android:attr/borderlessButtonStyle"
                android:layout_width="match_parent"
                android:layout_height="@dimen/_40sdp"
                android:layout_gravity="bottom"
                android:layout_margin="@dimen/_12sdp"
                android:background="@drawable/ripple_cornered"
                android:onClick="@{v -> viewmodel.onBeginClicked()}"
                android:text="@string/static_text_welcome_begin"
                android:textAllCaps="true"
                android:textColor="@color/black"
                android:textSize="@dimen/_14ssp" />
        </LinearLayout>
    </layout>
    
    
    Reviewed by TikTak123 at 2020-02-06 10:48
Mentions-TextView - Make Mentions and hashtags clickable in Textview
Mentions-TextView - Make Mentions and hashtags clickable in Textview

Mentions Textview Custome Textview with Mentions and hashtags being clickable. D

Jan 9, 2022
A TextView that automatically resizes text to fit perfectly within its bounds.
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

Jun 22, 2022
A Custom TextView with trim text
A Custom TextView with trim text

ReadMoreTextView A Custom TextView with trim text Download To add the ReadMoreTextView library to your Android Studio project, simply add the followin

May 30, 2022
Simple way to create linked text, such as @username or #hashtag, in Android TextView and EditText
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

Aug 27, 2020
Add text masking functionality to Android EditText. It will prevent user from inserting not allowed signs, and format input as well.
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.

Apr 24, 2022
A simple library for hide and show text with animation.
A simple library for hide and show text with animation.

ViewMore TextView ViewMore TextView allows you to use a TextView by hiding the content of the text by a number of established lines and to display all

Jun 15, 2022
A editable text with a constant text/placeholder for Android.
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

Feb 15, 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

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

Feb 14, 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

Jun 20, 2022
A library to show emoji in TextView, EditText (like WhatsApp) for Android
A library to show emoji in TextView, EditText (like WhatsApp) for Android

Discontinued This projected is discontinued. Please consider using other alternative, i.e EmojiCompat. Contact me if you want to continue working on a

Jun 12, 2022
Android experiment showing a sinking TextView
Android experiment showing a sinking TextView

Titanic is an Android experiment reproducing this effect.

Jun 22, 2022
Advanced Android TextView

Advanced Android TextView Companion app for my Advanced Android TextView talk, demostrating: Animated CompoundDrawable Text shadow Custom font Non-bre

Jun 16, 2022
AutoLinkTextView is TextView that supports Hashtags (#), Mentions (@) , URLs (http://), Phone and Email automatically detecting and ability to handle clicks.
AutoLinkTextView is TextView that supports Hashtags (#), Mentions (@) , URLs (http://), Phone and Email automatically detecting and ability to handle clicks.

AutoLinkTextView Deprecated Please use the new version of AutoLinkTextView AutoLinkTextView is TextView that supports Hashtags (#), Mentions (@) , URL

Jun 9, 2022
Implementation of a TextView and all its direct/indirect subclasses with native support for the Roboto fonts, includes the brand new Roboto Slab fonts.
Implementation of a TextView and all its direct/indirect subclasses with native support for the Roboto fonts, includes the brand new Roboto Slab fonts.

Android-RobotoTextView Implementation of a TextView and all its direct/indirect subclasses with native support for the Roboto fonts, includes the bran

Jun 22, 2022
A TextView that simulates the effect from the app Secret where the characters fade in/out at different speeds.
A TextView that simulates the effect from the app Secret where the characters fade in/out at different speeds.

SecretTextView A TextView that simulates the effect from the app Secret where the characters fade in/out at different speeds. How To Use Use it just l

Jun 21, 2022
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

Feb 15, 2022
An extension of Android's TextView, EditText and Button that let's you use the font of your choice

AnyTextView (deprecated) Note: AnyTextView is no longer being maintained. I recommend replacing AnyTextView with the Calligraphy library instead. Frus

Mar 17, 2021
Form validation and feedback library for Android. Provides .setText for more than just TextView and EditText widgets. Provides easy means to validate with dependencies.
Form validation and feedback library for Android. Provides .setText for more than just TextView and EditText widgets. Provides easy means to validate with dependencies.

android-formidable-validation Form validation and feedback library for Android. Provides .setText for more than just TextView and EditText widgets. Pr

Apr 15, 2021
Customized and Expandable TextView
Customized and Expandable TextView

Customized and Expandable TextView Simple library to change the Textview as rectangle, circle and square shapes by adding one line of code in xml file

Apr 7, 2022