Skip to content
Chat UI library for Android ⚡️
Kotlin Java Shell
Branch: master
Clone or download
Latest commit b33a94e Jul 27, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea update gitignore Feb 13, 2019
chatmessageview update dep Jul 26, 2019
example CircleCI -> TravisCI Feb 24, 2019
gradle/wrapper update dep Jul 26, 2019
images Update example app for v1.3.0 Mar 10, 2017
scripts rm temporary skip Feb 25, 2019
.gitignore update gitignore Feb 13, 2019
.travis.yml fix .travis.yml Feb 24, 2019
CHANGELOG.md update dep Jul 26, 2019
LICENSE update LICENSE Feb 24, 2019
README.md bump version [ci skip] Jul 26, 2019
build.gradle update dep Jul 26, 2019
gradle.properties fix testDebugUnitTest Feb 13, 2019
gradlew Initialize repository Aug 8, 2016
gradlew.bat Initialize repository Aug 8, 2016
settings.gradle Fix scroll issue Dec 3, 2016
travis_key.enc CircleCI -> TravisCI Feb 24, 2019

README.md

ChatMessageView

Build Status Android Arsenal Download API Apache-2.0

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 setting
  • Easy to use for bot app

Gradle

Download

dependencies {
    implementation 'com.github.bassaer:chatmessageview:2.1.0'
}

Usage

How to use this library

Only MessageView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <com.github.bassaer.chatmessageview.view.MessageView
        android:id="@+id/message_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

ChatView has MessageView and text box.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <com.github.bassaer.chatmessageview.view.ChatView
        android:id="@+id/chat_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

Sample code

public class MessengerActivity extends Activity {

    private ChatView mChatView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_messenger);

        //User id
        int myId = 0;
        //User icon
        Bitmap myIcon = BitmapFactory.decodeResource(getResources(), R.drawable.face_2);
        //User name
        String myName = "Michael";

        int yourId = 1;
        Bitmap yourIcon = BitmapFactory.decodeResource(getResources(), R.drawable.face_1);
        String yourName = "Emily";

        final User me = new User(myId, myName, myIcon);
        final User you = new User(yourId, yourName, yourIcon);

        mChatView = (ChatView)findViewById(R.id.chat_view);

        //Set UI parameters if you need
        mChatView.setRightBubbleColor(ContextCompat.getColor(this, R.color.green500));
        mChatView.setLeftBubbleColor(Color.WHITE);
        mChatView.setBackgroundColor(ContextCompat.getColor(this, R.color.blueGray500));
        mChatView.setSendButtonColor(ContextCompat.getColor(this, R.color.cyan500));
        mChatView.setSendIcon(R.drawable.ic_action_send);
        mChatView.setRightMessageTextColor(Color.WHITE);
        mChatView.setLeftMessageTextColor(Color.BLACK);
        mChatView.setUsernameTextColor(Color.WHITE);
        mChatView.setSendTimeTextColor(Color.WHITE);
        mChatView.setDateSeparatorColor(Color.WHITE);
        mChatView.setInputTextHint("new message...");
        mChatView.setMessageMarginTop(5);
        mChatView.setMessageMarginBottom(5);

        //Click Send Button
        mChatView.setOnClickSendButtonListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //new message
                Message message = new Message.Builder()
                        .setUser(me)
                        .setRight(true)
                        .setText(mChatView.getInputText())
                        .hideIcon(true)
                        .build();
                //Set to chat view
                mChatView.send(message);
                //Reset edit text
                mChatView.setInputText("");

                //Receive message
                final Message receivedMessage = new Message.Builder()
                        .setUser(you)
                        .setRight(false)
                        .setText(ChatBot.talk(me.getName(), message.getText()))
                        .build();

                // This is a demo bot
                // Return within 3 seconds
                int sendDelay = (new Random().nextInt(4) + 1) * 1000;
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        mChatView.receive(receivedMessage);
                    }
                }, sendDelay);
            }

        });

    }
}

License

Apache-2.0

You can’t perform that action at this time.