Android's TextView that can expand/collapse like the Google Play's app description

Last update: Jun 20, 2022

ExpandableTextView Android Arsenal

ExpandableTextView is an Android library that allows developers to easily create an TextView which can expand/collapse just like the Google Play's app description. Feel free to use it all you want in your Android apps provided that you cite this project.

Quick Demo

Requirements

API Level 8 (Froyo) and above.

Setup

The library is pushed to Maven Central as an AAR, so you just need to add the followings to your build.gradle file:

dependencies {
    compile 'com.ms-square:expandableTextView:0.1.4'
}

Usage

Using the library is really simple, just look at the source code of the provided sample. (Look at the SampleTextListAdapter.java for the use within a ListView)

The important thing to note is that the view Ids for TextView and ImageButton must be set to "@id/expandable_text" and "@id/expand_collapse" respectively for this library to work.

Also, you can optionally set the following attributes in your layout xml file to customize the behavior of the ExpandableTextView.

  • maxCollapsedLines (defaults to 8) The maximum number of text lines allowed to be shown when the TextView gets collapsed

  • animDuration (defaults to 300ms) Duration of the Animation for the expansion/collapse

  • animAlphaStart (defaults to 0.7f) Alpha value of the TextView when the animation starts (NOTE) Set this value to 1 if you want to disable the alpha animation.

  • expandDrawable Customize a drawable set to ImageButton to expand the TextView

  • collapseDrawable Customize a drawable set to ImageButton to collapse the TextView

  <!-- sample xml -->
  <com.ms.square.android.expandabletextview.ExpandableTextView
      xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:expandableTextView="http://schemas.android.com/apk/res-auto"
      android:id="@+id/expand_text_view"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      expandableTextView:maxCollapsedLines="4"
      expandableTextView:animDuration="200">
      <TextView
          android:id="@id/expandable_text"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_marginLeft="10dp"
          android:layout_marginRight="10dp"
          android:textSize="16sp"
          android:textColor="#666666" />
      <ImageButton
          android:id="@id/expand_collapse"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:padding="16dp"
          android:layout_gravity="right|bottom"
          android:background="@android:color/transparent"/>
  </com.ms.square.android.expandabletextview.ExpandableTextView>
// sample code snippet to set the text content on the ExpandableTextView
ExpandableTextView expTv1 = (ExpandableTextView) rootView.findViewById(R.id.sample1)
                    .findViewById(R.id.expand_text_view);
                    
// IMPORTANT - call setText on the ExpandableTextView to set the text content to display
expTv1.setText(getString(R.string.dummy_text1));

License

Copyright 2014 Manabu Shimobe

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/Manabu-GT/ExpandableTextView
Comments
  • 1. java.lang.NullPointerException

    java.lang.NullPointerException at com.ms.square.android.expandabletextview.ExpandableTextView.findViews(ExpandableTextView.java:226) at com.ms.square.android.expandabletextview.ExpandableTextView.onFinishInflate(ExpandableTextView.java:151) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:814) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) at android.view.LayoutInflater.rInflate(LayoutInflater.java:782) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:809) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) at android.view.LayoutInflater.rInflate(LayoutInflater.java:782) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:809) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) at android.view.LayoutInflater.rInflate(LayoutInflater.java:782) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:809) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) at android.view.LayoutInflater.rInflate(LayoutInflater.java:782) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:385) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:400) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:332) at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350) at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:688) at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:677) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932) at com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:677) at com.android.tools.idea.rendering.RenderService.render(RenderService.java:815) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:646) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1700(AndroidLayoutPreviewToolWindowManager.java:82) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.java:589) at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178) at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212) at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run(AndroidLayoutPreviewToolWindowManager.java:584) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) at com.intellij.util.Alarm$Request$1.run(Alarm.java:327) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

    This error, im using Android Studio & Gradle.

    compile 'com.ms-square:expandableTextView:0.1.3'
    
    Reviewed by LinkOut at 2015-01-07 16:05
  • 2. After expanding, it does not show last few lines

    When we expand textview, it is not showing last few lines because getRealTextViewHeight function is not giving correct textview height.I think it should be called on the right place.Please look into this.

    Reviewed by faraz-ahmad at 2014-12-01 05:43
  • 3. Can't build with Gradle

    I use Intellij Idea for android development. I have not been able to build the app with Gradle. I get this error: No such property: GROUP for class: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer

    Reviewed by tundebabzy at 2014-12-28 16:38
  • 4. It have a bug, I don't know why

    You can try add a button a your demo project, and on the onClickListener you set the dummy_text2 again. like

        expTv2.setText(getString(R.string.dummy_text2));
    
        Button bt = (Button) findViewById(R.id.test);
    
        bt.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
                expTv2.setText(getString(R.string.dummy_text2));
            }
        });
    

    after the button clicked, (that is the same text is set again after view created and when textview is collapsed), the textview can't expand fully. I found the mMeasuredTextHeight is a wrong value.

    may be I can solve this problem.

    thank you for your code.

    Reviewed by com314159 at 2014-10-30 10:18
  • 5. Expand Collapse Icons not visible

    when i tried to implement the expandable text-view in a list view The expand and collapse icons are not appearing could you please help me out if i am doing wrong

    MyCode: List_rowitem

    <!--  ListRow Left sied Thumbnail image -->
    <LinearLayout android:id="@+id/thumbnail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="3dip"
        android:layout_alignParentLeft="true"
        android:background="@android:color/transparent"
        android:layout_marginRight="5dp">
    
        <ImageView
            android:id="@+id/list_image"
            android:contentDescription="@string/app_name"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="@drawable/imagebordercolor"
            />
    
    </LinearLayout>
    
    <!-- Title Of Song-->
    
    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/thumbnail"
        android:layout_toRightOf="@+id/thumbnail"
        android:textColor="@android:color/white"
        android:textSize="15sp"
        android:textStyle="bold"
        android:typeface="sans" />
    
    <!-- Description -->
    <com.fiveytechnologies.bhagavadgita.views.ExpandableTextView 
        android:id="@+id/expand_text_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/title"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:layout_marginTop="1dip"
        android:layout_toRightOf="@+id/thumbnail"
        expandableTextView:maxCollapsedLines="8"
        expandableTextView:animAlphaStart="1"
        >
    
       <TextView
            android:id="@id/expandable_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:textSize="12sp"
            android:textColor="@android:color/white" />
    
        <ImageButton
            android:id="@id/expand_collapse"
            android:contentDescription="@string/app_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="1dp"
            android:layout_gravity="right|bottom"
            android:background="@android:color/transparent"/>
    
    
     </com.fiveytechnologies.bhagavadgita.views.ExpandableTextView>
    
    
    
    
    
    <!-- Rightend Duration -->
    <TextView
        android:id="@+id/duration"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@id/title"
        android:gravity="right"
        android:text="@string/slokacount"
        android:layout_marginRight="5dip"
        android:textSize="12sp"
        android:textColor="#10bcc9"
        android:textStyle="bold"
        android:visibility="gone"
        />
    
     <!-- Rightend Arrow -->
    
    Reviewed by vrvmadan at 2015-02-18 12:39
  • 6. Enable support for TextView expand/collapse toggle and custom Ids

    Added ability to choose the expand/collapse toggle view, currently ImageButton and TextView are supported, ImageButton is the default.

    Added support for custom Ids of the expandable TextView and expand/collapse toggle View.

    Reviewed by gergely-sallai at 2016-02-09 10:05
  • 7. Extra blank space when expanded inside RecyclerView

    Hi Manabu-GT, I am using a slightly modified version of your library, the only modification I did was to remove the drawable for expand and collapse and replace that with a TextView instead so that it shows Read More and Read Less testgif

    When I expand an item in the RecyclerView and scroll down and come back up, I find it collapsed, I also find extra blank spaces scattered everywhere, am I missing something? Also as per the GIF if you notice, it doesn't expand another time. Thanks for your suggestions in advance

    Reviewed by slidenerd at 2015-10-31 11:28
  • 8. Error:No such property: GROUP for class: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer

    I resolved this by commenting // for maven central deployment //apply from: 'https://raw.githubusercontent.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle' in build.gradle of lib module

    Reviewed by Defuera at 2015-01-23 15:40
  • 9. Hard coded id in XML layout

    mTv = (TextView) findViewById(R.id.expandable_text);
    mButton = (ImageButton) findViewById(R.id.expand_collapse);
    

    These lines in findViews mean that the id for the children of ExpandableTextView must be expandable_text and expandand_collapse for the TextView and ImageButton respectively.

    I initially changed the ids in my XML layout and slammed into a null-pointer exception until i dug into the code. It will nice if this "limitation" is made known to users or better still, remove the hard coded ids. I can submit a pull request to remove the hard coded ids.

    Reviewed by tundebabzy at 2014-12-28 18:20
  • 10. please add clearAnimation to onAnimationEnd

    If you not clearAnimation after textview expand or collapse , the android system will call onMeasure infinite loop.

    add clearAnimation to onClick method.

    image

    thank you.

    I don't know if it will cause bug. I have test it and haven't found bug yet.

    Reviewed by com314159 at 2014-11-12 13:12
  • 11. How to hide the image button and create custom button?

    Hi, I want to remove the image button and add my custom button but it will crash, so I tried to hide the image button but this code is not working android: visibility="gone" . the image button will display even I added this code. So how to hide it?

    My custom button just displays a 'Read More' text and no image.

    Or I have to create 'read more' image for it? any other solution?

    <com.ms.square.android.expandabletextview.ExpandableTextView xmlns:android="http://schemas.android.com/apk/res/android"
                        xmlns:expandableTextView="http://schemas.android.com/apk/res-auto"
                        android:id="@+id/expand_text_view"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="30dp"
                        expandableTextView:animDuration="200">
    
                        <TextView
                            android:id="@id/expandable_text"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:textColor="#666666"
                            android:textSize="16sp" />
    
                        <ImageButton
                            android:id="@id/expand_collapse"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="left|bottom"
                            android:background="@android:color/transparent"
                            android:visibility="gone"
                            android:padding="16dp"
                            android:text="Read More"
                            android:textColor="@color/colorSweat"/>
                    </com.ms.square.android.expandabletextview.ExpandableTextView>
    
    Reviewed by tanwanjern at 2018-07-09 04:43
  • 12. Solution for "Text is not completely shown in Expanded State (Height Calculation Issue)"

    Incase of large text, the text isn't shown completely in expanded state. This is still a bug in the latest version of this repository as of today and needs to be fixed in the next release @Manabu-GT . For now, following is the solution explained clearly.

    SOLUTION

    In ExpandableTextView class, in the onMeasure method: Cut the line

           mTextHeightWithMaxLines = getRealTextViewHeight(mTv);
    

    and paste it right below this line

            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    

    Or for ease, you can directly replace your onMeasure method with the method below.

        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            // If no change, measure and return
            if (!mRelayout || getVisibility() == View.GONE) {
                super.onMeasure(widthMeasureSpec, heightMeasureSpec);
                return;
            }
            mRelayout = false;
    
            // Setup with optimistic case
            // i.e. Everything fits. No button needed
            mToggleView.setVisibility(View.GONE);
            mTv.setMaxLines(Integer.MAX_VALUE);
    
            // Measure
            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    
            //--- Previously the mTextHeightWithMaxLines was initialized here ---//       
    
            // If the text fits in collapsed mode, we are done.
            if (mTv.getLineCount() <= mMaxCollapsedLines) {
                return;
            }
    
            // Doesn't fit in collapsed mode. Collapse text view as needed. Show
            // button.
            if (mCollapsed) {
                mTv.setMaxLines(mMaxCollapsedLines);
            }
            mToggleView.setVisibility(View.VISIBLE);
    
            // Re-measure with new setup
            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    
           mTextHeightWithMaxLines = getRealTextViewHeight(mTv);
    
            if (mCollapsed) {
                // Gets the margin between the TextView's bottom and the ViewGroup's bottom
                mTv.post(new Runnable() {
                    @Override
                    public void run() {
                        mMarginBetweenTxtAndBottom = getHeight() - mTv.getHeight();
                    }
                });
                // Saves the collapsed height of this ViewGroup
                mCollapsedHeight = getMeasuredHeight();
            }
        } 
    

    This was also discussed in this issue here #5 but the solution wasn't explained clearly.

    Reviewed by harismuneer at 2020-09-10 19:39
  • 13. MaxLines on expanded TextView?

    I want to limit max lines when textview is expanded. But it seems it's not working?

    <com.ms.square.android.expandabletextview.ExpandableTextView
                    xmlns:expandableTextView="http://schemas.android.com/apk/res-auto"
                    android:id="@+id/post_content"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@color/news_title_bg_color"
                    android:paddingStart="4dp"
                    android:paddingEnd="4dp"
                    expandableTextView:maxCollapsedLines="2"
                    expandableTextView:animDuration="200">
                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center_vertical"
                        android:orientation="horizontal">
                        <TextView
                            android:id="@id/expandable_text"
                            android:layout_width="0dp"
                            android:layout_weight="1"
                            android:maxLines="5"
                            android:layout_height="wrap_content"
                            android:textSize="12sp"
                            android:textColor="@color/colorDarkWhiteText"
                            android:textStyle="bold"/>
                        <ImageButton
                            android:id="@id/expand_collapse"
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:padding="2dp"
                            android:tint="@color/colorDarkWhiteText"
                            android:layout_gravity="center_vertical"
                            android:background="@android:color/transparent"/>
                    </LinearLayout>
                </com.ms.square.android.expandabletextview.ExpandableTextView>
    
    Reviewed by c0dehunter at 2020-03-24 02:27
  • 14. Not Compatible with AndroidX (Empty screen)

    The following sample code provided doesn't output anything on the screen or the studio live preview.

    Versions:

    • expandableTextView:0.1.4
    • gradle:3.5.0
    <com.ms.square.android.expandabletextview.ExpandableTextView xmlns:expandableTextView="http://schemas.android.com/apk/res-auto"
                    android:id="@+id/expand_text_view"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    expandableTextView:maxCollapsedLines="4"
                    expandableTextView:animDuration="200">
    
                    <TextView
                        android:id="@id/expandable_text"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_marginRight="10dp"
                        android:textSize="16sp"
                        android:text="asdkjbaskjda\nsadasdasdas\nasdasdasdasd\nasdasdasdas\nasdas\nadsas\nadsas"
                        android:textColor="#666666" />
    
                    <ImageButton
                        android:id="@id/expand_collapse"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:padding="16dp"
                        android:layout_gravity="end|bottom"
                        android:background="@android:color/transparent" />
                </com.ms.square.android.expandabletextview.ExpandableTextView>
    
    Reviewed by geekykant at 2019-12-13 09:27
  • 15. In the recyclerview, the expansion does not display the entire content correctly.

    According to debug, I think that the number of rows that get the textview is incorrect. The number of rows obtained before the super.onMeasure() method is correct (may be 0), but the number of rows obtained after this is less. Up ------------------------------Above from Google Translate, the following is the original---------------------- 根据debug,我认为是获取textview的行数不正确导致的,在super.onMeasure()方法之前获取到的行数是正确的(也可能是0),但是在这之后获取到的行数变少了

    Reviewed by qinxianyuzou at 2018-12-26 11:25
() An Android TextView with a shimmering effect
() 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

Jun 16, 2022
() Android experiment showing a sinking TextView
() 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

Jun 22, 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 15, 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
RoundedLetterView like the one in Android 5.0 Contacts app
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

Feb 15, 2022
Include MatchTextView and MatchButton..Come..you will like it

Android MatchView This project is learned from (https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh) . Thanks for liaohuqiu.. I like the animat

Feb 20, 2022
An easy, flexible way to add a shimmering effect to any view in an Android app.
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

Jun 20, 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
Android Application that plays music through a Spotify API based on a user's current location found through Google Maps API and also checking Google Weather API.

GeoStereo Android Application that plays music through a Spotify API based on a user's current location found through Google Maps API and also checkin

Jun 16, 2022
My Maps displays a list of maps, each of which show user-defined markers with a title, description, and location. The user can also create a new map. The user can save maps and load them in from previous usages of the app.

My Maps Bryant Jimenez My Maps displays a list of maps, each of which show user-defined markers with a title, description, and location. The user can

Nov 1, 2021
GoolgePlusLayout is a custom layout that plays animation on the children views while scrolling as the layout in the Google Plus (android) main page

Google Plus Layout Google Plus Layout is a custom layout that support playing animation on child view(s) in a serialize manner like the the main

Jul 25, 2021
Custom view to expand long text with view more,less action , you can customize min lines , action color
Custom view to expand long text with view more,less action , you can customize min lines , action color

ExpandableTextView Custom expadable text view Examples : <mostafa.projects.expandabletextview.ExpandableTextView android:layout_wi

Jan 25, 2022
A simple app to showcase Androids Material Design and some of the cool new cool stuff in Android Lollipop. RecyclerView, CardView, ActionBarDrawerToggle, DrawerLayout, Animations, Android Compat Design, Toolbar
A simple app to showcase Androids Material Design and some of the cool new cool stuff in Android Lollipop. RecyclerView, CardView, ActionBarDrawerToggle, DrawerLayout, Animations, Android Compat Design, Toolbar

#Android-LollipopShowcase This is a simple showcase to show off Android's all new Material Design and some other cool new stuff which is (new) in Andr

Jun 15, 2022
A simple app to showcase Androids Material Design and some of the cool new cool stuff in Android Lollipop. RecyclerView, CardView, ActionBarDrawerToggle, DrawerLayout, Animations, Android Compat Design, Toolbar
A simple app to showcase Androids Material Design and some of the cool new cool stuff in Android Lollipop. RecyclerView, CardView, ActionBarDrawerToggle, DrawerLayout, Animations, Android Compat Design, Toolbar

#Android-LollipopShowcase This is a simple showcase to show off Android's all new Material Design and some other cool new stuff which is (new) in Andr

Jun 15, 2022
A simple app to showcase Androids Material Design and some of the cool new cool stuff in Android Lollipop. RecyclerView, CardView, ActionBarDrawerToggle, DrawerLayout, Animations, Android Compat Design, Toolbar
A simple app to showcase Androids Material Design and some of the cool new cool stuff in Android Lollipop. RecyclerView, CardView, ActionBarDrawerToggle, DrawerLayout, Animations, Android Compat Design, Toolbar

#Android-LollipopShowcase This is a simple showcase to show off Android's all new Material Design and some other cool new stuff which is (new) in Andr

Jun 15, 2022
Androids EditText that animates the typed text. EditText is extended to create AnimatedEditText and a PinEntryEditText.
Androids EditText that animates the typed text. EditText is extended to create AnimatedEditText and a PinEntryEditText.

AnimatedEditText for Android This repository contains AnimatedEditText and TextDrawable all of which extend the behaviour of EditText and implement fe

May 17, 2022
Android common lib demo, include ImageCache, HttpCache, DropDownListView, DownloadManager, install apk silent and so on, you can find description
Android common lib demo, include ImageCache, HttpCache, DropDownListView, DownloadManager, install apk silent and so on, you can find description

android-demo 关于我,欢迎关注 微博:Trinea 主页:trinea.cn 邮箱:trinea.cn#gmail.com 微信:codek2 依赖:trinea-android-common android-auto-scroll-view-pager viewpager-indica

Jun 17, 2022
Android common lib demo, include ImageCache, HttpCache, DropDownListView, DownloadManager, install apk silent and so on, you can find description
Android common lib demo, include ImageCache, HttpCache, DropDownListView, DownloadManager, install apk silent and so on, you can find description

android-demo 关于我,欢迎关注 微博:Trinea 主页:trinea.cn 邮箱:trinea.cn#gmail.com 微信:codek2 依赖:trinea-android-common android-auto-scroll-view-pager viewpager-indica

Jun 17, 2022
ABCTingle is a simple app that i made over the weekend. Clicking each alphabets from letter 'A' to 'Z' plays the tranditional ABC song
ABCTingle is a simple app that i made over the weekend. Clicking each alphabets from letter 'A' to 'Z' plays the tranditional ABC song

I made ABCTingle over the weekend just for fun. Clicking each alphabets from letter A to Z plays the tranditional ABC song. I'm sure kids would enjoy their day with this app.

Feb 21, 2022