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

Overview

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.
Comments
  • java.lang.NullPointerException

    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'
    
    opened by LinkOut 8
  • After expanding, it does not show last few lines

    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.

    bug 
    opened by ghost 8
  • Can't build with Gradle

    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

    opened by tundebabzy 5
  • It have a bug, I don't know why

    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.

    bug 
    opened by com314159 5
  • Expand Collapse Icons not visible

    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 -->
    
    question 
    opened by vrvmadan 3
  • Enable support for TextView expand/collapse toggle and custom Ids

    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.

    opened by gergely-sallai 2
  • Extra blank space when expanded inside RecyclerView

    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

    opened by slidenerd 2
  • Error:No such property: GROUP for class: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer

    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

    bug 
    opened by Defuera 2
  • Hard coded id in XML layout

    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.

    opened by tundebabzy 2
  • please add clearAnimation to onAnimationEnd

    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.

    bug 
    opened by com314159 2
  • How to hide the image button and create custom button?

    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>
    
    opened by tanwanjern 1
  • Support for Android X

    Support for Android X

    Hi, Can you please upgrade your project to eliminate Android v7 support library and replace it with Android X as We need this to make sure our app is supporting Androd X completely. Looking forward to it.

    opened by sudhanshu79 0
  • Solution for

    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.

    opened by harismuneer 2
  • MaxLines on expanded TextView?

    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>
    
    opened by c0dehunter 0
  • Not Compatible with AndroidX (Empty screen)

    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>
    
    opened by geekykant 1
Releases(v0.1.3)
Owner
Manabu S.
Mobile & Web Engineer / Former Project Manager
Manabu S.
() An Android TextView with a shimmering effect

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

Romain Piel 2k Jan 9, 2023
() Android experiment showing a sinking TextView

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

Romain Piel 1.8k Dec 15, 2022
A TextView that automatically resizes text to fit perfectly within its bounds.

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

Grantland Chew 4.2k Jan 8, 2023
This is based on an open source autosizing textview for Android.

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

Elliott Chenger 255 Dec 29, 2022
RoundedLetterView like the one in Android 5.0 Contacts app

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

Pavlos-Petros Tournaris 653 Nov 11, 2022
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

Roger 858 Dec 7, 2022
An easy, flexible way to add a shimmering effect to any view in an Android app.

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

Facebook 5.1k Dec 31, 2022
Android's TextView that can expand/collapse like the Google Play's app description

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

Manabu S. 4k Dec 28, 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

Jonah Douglas 1 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

null 0 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

Ahmed Nammari 224 Nov 25, 2022
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

Mostafa Gad 8 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

#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

Mike Penz 1.8k Nov 10, 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

#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

Mike Penz 1.8k Nov 10, 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

#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

Mike Penz 1.8k Nov 10, 2022
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

Ali Muzaffar 439 Nov 29, 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

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.

Gana Ebenezer 2 Feb 21, 2022
A Spotify Clone that plays music and has similar UI to actual Spotify Mobile App. Made with Exoplayer and love ❤️

Spotify Clone A Spotify Clone App that can play music, and has a good looking UI that is very similar to actual Spotify Mobile App on Play Store I use

Utku Oruç 4 Oct 12, 2022
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

Trinea 1.1k Nov 10, 2022