Android library to create chat message view easily

Overview

Android Gems

ChatMessageView

ChatMessageView helps you to create chat message view quickly like a typical chatting application. Its a container view, so you can add any type of message such as TextView or any customize TextView, ImageView, etc.

Features

  1. Can have any child inside of it.
  2. You can change color of ChatMessageView normal and pressed.
  3. Adjustable arrow position (top, bottom, left, right)
  4. Adjustable arrow gravity (start, end, center)
  5. Chat view without arrow

Sample Screen

ChatMessageView

Installation

add gradle dependency to your dependency list:

dependencies {
	compile 'me.himanshusoni.chatmessageview:chat-message-view:1.0.7'
}

Use

  1. Include ChatMessageView in your xml of adapter view with content inside.
<me.himanshusoni.chatmessageview.ChatMessageView
	xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:cmv_backgroundColor="#88BABABA"
    app:cmv_backgroundColorPressed="#FFBABABA"
    app:cmv_cornerRadius="3dp" >

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello" />

        <!-- ... -->

</me.himanshusoni.chatmessageview.ChatMessageView>

Customization

Attributes:

app:cmv_arrowGravity="start|end|center"
app:cmv_arrowPosition="right|left|top|bottom"
app:cmv_arrowMargin="3dp"
app:cmv_contentPadding="10dp"
app:cmv_backgroundColor="#88BABABA"
app:cmv_backgroundColorPressed="#FFBABABA"
app:cmv_cornerRadius="3dp"
app:cmv_showArrow="true|false"

Description:

  • cmv_arrowGravity controls relative position of arrow. possible values are start,end and center. default is left.
  • cmv_arrowPosition controls poition of the arrow outside the box. possible values are right,left,top and bottom. default is left.
  • cmv_arrowMargin controls margin of arrow. If cmv_arrowPosition is left or right it controls top and bottom margin. else it controls left and right margin.
  • cmv_contentPadding adjusts padding of content within the box.
  • cmv_backgroundColor sets background color of ChatMessageView in normal mode including arrow.
  • cmv_backgroundColorPressed sets background color of ChatMessageView in pressed mode including arrow.
  • cmv_cornerRadius sets corner radius of the box.
  • cmv_showArrow shows / hides arrow from ChatMessageView.

developed to make programming easy.

by Himanshu Soni ([email protected])

Comments
  • Text in bubble is not displaying properly on older APIs

    Text in bubble is not displaying properly on older APIs

    Not sure why this happens. It seems like the text is not wrapping correctly on older apis. Here's a screenshot of the word "test". screen shot 2015-10-20 at 10 23 48

    I'm testing on a Galaxy Nexus running 4.2 and an emulator running 4.1. It's not happening on Lollipop. Thanks.

    opened by Mathbl 6
  • arrowPosition : bottom & arrowGravity : end,  not working properly

    arrowPosition : bottom & arrowGravity : end, not working properly

    Hi, I've been testing your library and I'd like to put the arrow on the bottom|right of the bubble.

    app:cmv_arrowPosition="bottom" app:cmv_arrowGravity="end"

    At this moment, there is no way, as far as I know, to put the bubble on the right part.

    Can you help me with this?

    Best regards

    opened by franrc 5
  • Strange artefakt error

    Strange artefakt error

    UPDATE Even I think it has nothing to do with ChatMessageView but would love a comment on this problem. Maybe ChatMessageView can be changed to address this problem

    Working on an app project . When I fresh install app and insert an image into ChatMessageView the image becomes shopped like this: screenshot_2017-02-12-22-21-32

    When I rotate device to landscape and back to portrait it looks ok like this:

    screenshot_2017-02-12-22-25-03

    What could cause this to happen.

    I am not changing the xml code between rotate...

    opened by erikswed 4
  • RelativeLayout End/Start crashes on API < 17

    RelativeLayout End/Start crashes on API < 17

    Hello, Got this stack trace on some devices:

    Caused by: java.lang.ArrayIndexOutOfBoundsException: length=16; index=17
           at android.widget.RelativeLayout$LayoutParams.addRule(RelativeLayout.java:1222)
           at me.himanshusoni.chatmessageview.ChatMessageView.initContent(ChatMessageView.java:118)
           at me.himanshusoni.chatmessageview.ChatMessageView.initialize(ChatMessageView.java:67)
           at me.himanshusoni.chatmessageview.ChatMessageView.<init>(ChatMessageView.java:42)
           at java.lang.reflect.Constructor.constructNative(Constructor.java)
           at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
           at android.view.LayoutInflater.createView(LayoutInflater.java:587)
           at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
           at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
           at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
           at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
           at com.classcraft.android.views.adapters.MessagingDiscussionAdapter.getIncomingView(MessagingDiscussionAdapter.java:111)
           at com.classcraft.android.views.adapters.MessagingDiscussionAdapter.getView(MessagingDiscussionAdapter.java:101)
           at android.widget.AbsListView.obtainView(AbsListView.java:2465)
           at android.widget.ListView.makeAndAddView(ListView.java:1775)
           at android.widget.ListView.fillUp(ListView.java:712)
           at android.widget.ListView.layoutChildren(ListView.java:1632)
           at android.widget.AbsListView.onLayout(AbsListView.java:2300)
           at android.view.View.layout(View.java:13856)
           at android.view.ViewGroup.layout(ViewGroup.java:4424)
           at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655)
           at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513)
           at android.widget.LinearLayout.onLayout(LinearLayout.java:1426)
           at android.view.View.layout(View.java:13856)
           at android.view.ViewGroup.layout(ViewGroup.java:4424)
           at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
           at android.view.View.layout(View.java:13856)
           at android.view.ViewGroup.layout(ViewGroup.java:4424)
           at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655)
           at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513)
           at android.widget.LinearLayout.onLayout(LinearLayout.java:1426)
           at android.view.View.layout(View.java:13856)
           at android.view.ViewGroup.layout(ViewGroup.java:4424)
           at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
           at android.view.View.layout(View.java:13856)
           at android.view.ViewGroup.layout(ViewGroup.java:4424)
           at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
           at android.view.View.layout(View.java:13856)
           at android.view.ViewGroup.layout(ViewGroup.java:4424)
           at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
           at android.view.View.layout(View.java:13856)
           at android.view.ViewGroup.layout(ViewGroup.java:4424)
           at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655)
           at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513)
           at android.widget.LinearLayout.onLayout(LinearLayout.java:1426)
           at android.view.View.layout(View.java:13856)
           at android.view.ViewGroup.layout(ViewGroup.java:4424)
           at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
           at android.view.View.layout(View.java:13856)
           at android.view.ViewGroup.layout(ViewGroup.java:4424)
           at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1992)
           at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1813)
           at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1113)
           at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4481)
           at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
           at android.view.Choreographer.doCallbacks(Choreographer.java:555)
           at android.view.Choreographer.doFrame(Choreographer.java:525)
           at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
           at android.os.Handler.handleCallback(Handler.java:615)
           at android.os.Handler.dispatchMessage(Handler.java:92)
           at android.os.Looper.loop(Looper.java:137)
           at android.app.ActivityThread.main(ActivityThread.java:4867)
           at java.lang.reflect.Method.invokeNative(Method.java)
           at java.lang.reflect.Method.invoke(Method.java:511)
           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
           at dalvik.system.NativeStart.main(NativeStart.java)
    

    According to this SO post, problem seems related to Start/End rules. http://stackoverflow.com/questions/25763142/android-arrayindexoutofbounds-exception-on-addrule-in-layoutparams

    Thanks for your time.

    opened by Mathbl 4
  • OnItemClickListener does not working

    OnItemClickListener does not working

    i'm using recycle view for show messages and my onitemclicklistener does not working with messages. I think ChatMessageView is inpercepting ontemclick event. How i can avoid this?

    opened by Drake1804 3
  • app is crashin on 4.1.1

    app is crashin on 4.1.1

    Fatal Exception: java.lang.RuntimeException: Unable to start activity android.view.InflateException: Binary XML file line #38: Error inflating class me.himanshusoni.chatmessageview.ChatMessageView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2118) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2143) at android.app.ActivityThread.access$700(ActivityThread.java:140) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:174) at android.app.ActivityThread.main(ActivityThread.java:4952) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) at dalvik.system.NativeStart.main(NativeStart.java)

    but works in kitkat and above

    opened by rameshvoltella 2
  • .setBackgroundColors gives an error when I give it a valid color

    .setBackgroundColors gives an error when I give it a valid color

    android.content.res.Resources$NotFoundException: Resource ID #0xffd4e157 return when I give it a valid colour, what values are we supposed to use when changing it programatically?

    I see you have called it like this:

    public void setBackgroundColors(int bgColorRes, int bgPressedColorRes) { this.backgroundColorPressed = this.getResources().getColor(bgPressedColorRes); this.backgroundColor = this.getResources().getColor(bgColorRes); this.updateColors(); }

    Why is it not just:

    public void setBackgroundColors(int bgColorRes, int bgPressedColorRes) { this.backgroundColorPressed = bgPressedColorRes; this.backgroundColor = bgColorRes; this.updateColors(); }

    Perhaps I am missing some logic? I could just be very confused. Please help and give an example, thank you very much. Love the library

    opened by kiaanpillay 2
  • How to change background color on the bubble in java code?

    How to change background color on the bubble in java code?

    Please help!

    ChatMessageView messageView = (ChatMessageView) view.findViewById(R.id.chatMessageView); messageTextView.setBackgroundColor(Color.parseColor("#FF4081"));

    This only sets the color to the whole parent not just wrapped bubble.

    opened by yarodevuci 1
  • Related to himanshu-soni/ChatMessageView#21 (The default is right and…

    Related to himanshu-soni/ChatMessageView#21 (The default is right and…

    … was not behaving as it should)

    I guess that there was a bug because what I did was just to take to opposite of the left and it was working. Else right and long text wasn't working as mentioned in #21

    opened by lolobosse 1
  • Multiple quality improvements

    Multiple quality improvements

    This pull request is focused on resolving occurrences of Sonar rules squid:S3052 - Fields should not be initialized to default values squid:SwitchLastCaseIsDefaultCheck - "switch" statements should end with a "default" clause squid:S1319 - Declarations should use Java collection interfaces such as "List" rather than specific implementation classes such as "LinkedList" squid:CommentedOutCodeLine - Sections of code should not be "commented out"

    You can find more information about the issue here: https://dev.eclipse.org/sonar/coding_rules#q=squid:S3052 https://dev.eclipse.org/sonar/coding_rules#q=squid:SwitchLastCaseIsDefaultCheck https://dev.eclipse.org/sonar/coding_rules#q=squid:S1319 https://dev.eclipse.org/sonar/coding_rules#q=squid:CommentedOutCodeLine

    Please let me know if you have any questions.

    M-Ezzat

    opened by m-ezzat 0
  • squid:S1118, squid:S1170 - Utility classes should not have public con…

    squid:S1118, squid:S1170 - Utility classes should not have public con…

    This pull request is focused on resolving occurrences of Sonar rules squid:S1118 - Utility classes should not have public constructors squid:S1170 - Public constants and fields initialized at declaration should be "static final" rather than merely "final"

    You can find more information about the issue here: https://dev.eclipse.org/sonar/coding_rules#q=squid:S1118 https://dev.eclipse.org/sonar/coding_rules#q=squid:S1170

    Please let me know if you have any questions.

    M-Ezzat

    opened by m-ezzat 0
  • wrap_content doesn't work?

    wrap_content doesn't work?

    I'm trying to use android:layout_width="wrap_content" android:layout_height="wrap_content" in CMV but it seems to ignore them and other layout params! Is it a bug??

    opened by sjd753 0
  • Little bottom bevels

    Little bottom bevels

    Hello,nice job on this library. Someone really appreciates the time and effort put into building this library. I was thinking, is there any way I can enable some sort of little bevels underneath my ChatMessageView to give the illusion of depth as seen in Chat bubbles in apps like WhatsApp. The entire view is quite flat..Thanks once again for this nice job.

    opened by wanclem 0
  • Strange artefakt error 2.0

    Strange artefakt error 2.0

    Using the ChatMessageView version 1.0.7 and loading asynchronously from Picasso gives me this cut of picture:

    screenshot_2017-02-15-10-55-10

    Notice the Picasso setIndicatorsEnabled(true)blue color marker saying it´s loaded from disk. The bottom picture is nr: 1 in the RecyclerViewList. I dont see this on the other landscapes pictures only the portrait is affected

    When i swipe down and swipe up again it looks like this. Picasso working ok as setIndicatorsEnabled(true)now show the green color loaded from memory. but the picture is cut of if like the reused viewholder misses a layout run:

    screenshot_2017-02-15-10-55-22

    Also the orange timestamp text is hidden behind the cut of picture but on the other picture the time stamp is below.

    Basically could you make it work using async loading would be grate. This picture problem is also happening for text. I have to execute the chatAdapter.notifyItemChanged(position); to create the layout in ChatMessageView. Here´s my xml maybe I did something wrong:

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp">
    
        <com.github.curioustechizen.ago.RelativeTimeTextView
            android:id="@+id/timestamp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="16dp"
            android:textColor="?AppTheme.ChatBubbleTextColor"
            android:textSize="@dimen/chat_timestamp_text_size"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintHorizontal_bias="1.0"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toLeftOf="@+id/guideline1"
            tools:text="Just Now" />
    
        <android.support.constraint.Guideline
            android:id="@+id/guideline1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            app:layout_constraintGuide_percent="0.88611114"
            tools:layout_editor_absoluteX="319dp"
            tools:layout_editor_absoluteY="0dp" />
    
        <ImageView
            android:id="@+id/thumbnail"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="16dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="@+id/guideline1"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            tools:src="@drawable/tw__composer_logo_blue" />
    
        <me.himanshusoni.chatmessageview.ChatMessageView
            android:id="@+id/chatMessageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:cmv_arrowGravity="center"
            app:cmv_arrowPosition="right"
            app:cmv_backgroundColor="?AppTheme.ChatBubbleBackGroundColor"
            app:cmv_backgroundColorPressed="?AppTheme.ChatBubbleBackGroundColorPressed"
            app:cmv_contentPadding="10dp"
            app:cmv_cornerRadius="10dp"
            app:cmv_showArrow="true"
            app:layout_constraintBottom_toTopOf="@+id/timestamp"
            app:layout_constraintTop_toTopOf="parent"
            android:layout_marginStart="16dp"
            app:layout_constraintLeft_toLeftOf="parent"
            android:layout_marginLeft="16dp"
            app:layout_constraintRight_toLeftOf="@+id/guideline1"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            app:layout_constraintHorizontal_bias="1.0">
    
            <ImageView
                android:id="@+id/image"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="?AppTheme.ChatBubbleBackGroundColor"/>
    
        </me.himanshusoni.chatmessageview.ChatMessageView>
    
    </android.support.constraint.ConstraintLayout>
    
    opened by erikswed 0
  • ChatMessageView with no content padding not rounding borders

    ChatMessageView with no content padding not rounding borders

    When setting the content_padding xml property to 0dp the view does not round the corners. In my case I'm using the ChatMessageView to show an ImageView and I'd like to not show any background around the ImageView. Here is my xml:

    <me.himanshusoni.chatmessageview.ChatMessageView xmlns:app="http://schemas.android.com/apk/res-auto"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:cmv_arrowGravity="start"
            app:cmv_arrowMargin="3dp"
            app:cmv_arrowPosition="right"
            app:cmv_backgroundColor="@color/md_grey_300"
            app:cmv_backgroundColorPressed="@color/md_pink_50"
            app:cmv_contentPadding="0dp"
            app:cmv_cornerRadius="3dp"
            app:cmv_showArrow="true">
    
            <FrameLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"            
                android:orientation="vertical">
    
                <ImageView
                    android:id="@+id/imageView"
                    android:layout_width="200dp"
                    android:layout_height="180dp"
                    android:adjustViewBounds="true"
                    android:scaleType="centerCrop" />
    
                <TextView
                    android:id="@+id/tVtimestamp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom|end"
                    android:fontFamily="sans-serif"
                    android:padding="4dp"
                    android:text="14:30"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textColor="@color/md_white_1000"
                    android:textSize="12sp"
                    android:shadowColor="#8000"
                    android:shadowDx="0"
                    android:shadowDy="2"
                    android:shadowRadius="2"/>
    
            </FrameLayout>
        </me.himanshusoni.chatmessageview.ChatMessageView>
    

    And this is what shows in app:

    screenshot_20151124-142937

    opened by MrBrightside29 0
Releases(v1.0.2)
Owner
Himanshu Soni
Himanshu Soni
Easily create complex recyclerview adapters in android

?? Due to the nature of my job and growing popularity of Jetpack Compose, I lack the motivation to keep this project alive. Recyclerview is one of the

Riyaz Ahamed 823 Jan 6, 2023
Bubbles for Android is an Android library to provide chat heads capabilities on your apps. With a fast way to integrate with your development.

Bubbles for Android Bubbles for Android is an Android library to provide chat heads capabilities on your apps. With a fast way to integrate with your

Txus Ballesteros 1.5k Jan 2, 2023
Chat UI library for Android :zap:

ChatMessageView This library aims to provide a chat UI view for Android. Feature You need to write just few code to create chat view. Auto date settin

Tsubasa Nakayama 568 Dec 29, 2022
Android view that allows the user to create drawings. Customize settings like color, width or tools. Undo or redo actions. Zoom into DrawView and add a background.

DrawView Android view that allows the user to create drawings. Draw anything you like in your Android device from simple view. Customize draw settings

Oscar Gilberto Medina Cruz 839 Dec 28, 2022
💳 A quick and easy flip view through which you can create views with two sides like credit cards, poker cards etc.

The article on how this library was created is now published. You can read it on this link here. →. ?? EasyFlipView Built with ❤︎ by Wajahat Karim and

Wajahat Karim 1.3k Dec 14, 2022
Android View for displaying and selecting values in a circle-shaped View, with animations and touch gestures.

CircleDisplay Android View for displaying and selecting (by touch) values / percentages in a circle-shaped View, with animations. Features Core featur

Philipp Jahoda 287 Nov 18, 2022
FloatingView can make the target view floating above the anchor view with cool animation

FloatingView FloatingView can make the target view floating above the anchor view with cool animation Links 中文版 README Blog about FloatingView demo.ap

UFreedom 1.8k Dec 27, 2022
用于做Path动画的自定义View。 I have a path.I have a view. (Oh~),Path(Anim)View.

PathAnimView 用于做Path动画的自定义View。 I have a path.I have a view. (Oh~),Path(Anim)View. 现已经找到图片->SVG->PATH的正确姿势, Now i have a pic.I have a view. Oh~,Path(A

张旭童 1.1k Oct 28, 2022
Android library used to create an awesome Android UI based on a draggable element similar to the last YouTube graphic component.

Draggable Panel DEPRECATED. This project is not maintained anymore. Draggable Panel is an Android library created to build a draggable user interface

Pedro Vicente Gómez Sánchez 3k Dec 6, 2022
A Tinder-like Android library to create the swipe cards effect. You can swipe left or right to like or dislike the content.

Swipecards Travis master: A Tinder-like cards effect as of August 2014. You can swipe left or right to like or dislike the content. The library create

Dionysis Lorentzos 2.3k Dec 9, 2022
💳 CreditCardView is an Android library that allows developers to create the UI which replicates an actual Credit Card.

CreditCard View CreditCardView is an Android library that allows developers to create the UI which replicates an actual Credit Card. Displaying and en

Vinay Gaba 769 Dec 14, 2022
Create an header for com.google.android.material.navigation.NavigationView

Header View This is a view for NavigationView in android.support.design library Import At the moment the library is in my personal maven repo reposito

Raphaël Bussa 106 Nov 25, 2022
This is a sample Android Studio project that shows the necessary code to create a note list widget, And it's an implementation of a lesson on the Pluralsight platform, but with some code improvements

NoteKeeper-Custom-Widgets This is a sample Android Studio project that shows the necessary code to create a note list widget, And it's an implementati

Ibrahim Mushtaha 3 Oct 29, 2022
Code Guide: How to create Snapchat-like image stickers and text stickers.

MotionViews-Android Code Guide : How to create Snapchat-like image stickers and text stickers After spending 2000+ hours and releasing 4+ successful a

Uptech 474 Dec 9, 2022
The CustomCalendarView provides an easy and customizable calendar to create a Calendar. It dispaly the days of a month in a grid layout and allows to navigate between months

Custom-Calendar-View To use the CustomCalendarView in your application, you first need to add the library to your application. You can do this by eith

Nilanchala Panigrahy 113 Nov 29, 2022
A set of widgets to create smooth slideshows with ease.

Android SlideShow Widget A set of widgets to create smooth slide shows with ease. The slide show components are fully customizable and are not limited

MarvinLabs 211 Nov 20, 2022
NeoPOP was created with one simple goal; to create the next generation of a beautiful, affirmative design system

NeoPop is CRED's inbuilt library for using NeoPop components in your app

CRED 254 Dec 29, 2022
TourGuide is an Android library that aims to provide an easy way to add pointers with animations over a desired Android View

TourGuide TourGuide is an Android library. It lets you add pointer, overlay and tooltip easily, guiding users on how to use your app. Refer to the exa

Tan Jun Rong 2.6k Jan 5, 2023
A horizontal view scroller library for Android

View Flow for Android ViewFlow is an Android UI widget providing a horizontally scrollable ViewGroup with items populated from an Adapter. Scroll down

Patrik Åkerfeldt 1.8k Dec 29, 2022