This library aims to provide a chat UI view for Android.
- You need to write just few code to create chat view.
- Auto date setting
- Easy to use for bot app
dependencies {
implementation 'com.github.bassaer:chatmessageview:2.1.0'
}Only MessageView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns: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"?>
<LinearLayoutxmlns: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
publicclassMessengerActivityextendsActivity {
privateChatViewmChatView;
@OverridepublicvoidonCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_messenger);
//User idintmyId = 0;
//User iconBitmapmyIcon = BitmapFactory.decodeResource(getResources(), R.drawable.face_2);
//User nameStringmyName = "Michael";
intyourId = 1;
BitmapyourIcon = BitmapFactory.decodeResource(getResources(), R.drawable.face_1);
StringyourName = "Emily";
finalUserme = newUser(myId, myName, myIcon);
finalUseryou = newUser(yourId, yourName, yourIcon);
mChatView = (ChatView)findViewById(R.id.chat_view);
//Set UI parameters if you needmChatView.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 ButtonmChatView.setOnClickSendButtonListener(newView.OnClickListener() {
@OverridepublicvoidonClick(Viewview) {
//new messageMessagemessage = newMessage.Builder()
.setUser(me)
.setRight(true)
.setText(mChatView.getInputText())
.hideIcon(true)
.build();
//Set to chat viewmChatView.send(message);
//Reset edit textmChatView.setInputText("");
//Receive messagefinalMessagereceivedMessage = newMessage.Builder()
.setUser(you)
.setRight(false)
.setText(ChatBot.talk(me.getName(), message.getText()))
.build();
// This is a demo bot// Return within 3 secondsintsendDelay = (newRandom().nextInt(4) + 1) * 1000;
newHandler().postDelayed(newRunnable() {
@Overridepublicvoidrun() {
mChatView.receive(receivedMessage);
}
}, sendDelay);
}
});
}
}

