{"id":13428819,"url":"https://github.com/bassaer/ChatMessageView","last_synced_at":"2025-03-16T02:30:35.344Z","repository":{"id":48187147,"uuid":"65161139","full_name":"bassaer/ChatMessageView","owner":"bassaer","description":"Chat UI library for Android :zap:","archived":false,"fork":false,"pushed_at":"2019-07-26T19:11:34.000Z","size":7196,"stargazers_count":580,"open_issues_count":37,"forks_count":147,"subscribers_count":29,"default_branch":"master","last_synced_at":"2024-10-27T06:39:15.262Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bassaer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-08-08T00:42:32.000Z","updated_at":"2024-10-24T14:52:28.000Z","dependencies_parsed_at":"2022-09-26T19:32:25.625Z","dependency_job_id":null,"html_url":"https://github.com/bassaer/ChatMessageView","commit_stats":null,"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bassaer%2FChatMessageView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bassaer%2FChatMessageView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bassaer%2FChatMessageView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bassaer%2FChatMessageView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bassaer","download_url":"https://codeload.github.com/bassaer/ChatMessageView/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243815579,"owners_count":20352194,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T01:01:05.949Z","updated_at":"2025-03-16T02:30:34.787Z","avatar_url":"https://github.com/bassaer.png","language":"Kotlin","readme":"# ChatMessageView\n\n[![Build Status](https://travis-ci.org/bassaer/ChatMessageView.svg?branch=master)](https://travis-ci.org/bassaer/ChatMessageView)\n[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-ChatMessageView-brightgreen.svg?style=flat)](https://android-arsenal.com/details/1/5032)\n[![Download](https://api.bintray.com/packages/tnakayama/ChatMessageView/chatmessageview/images/download.svg) ](https://bintray.com/tnakayama/ChatMessageView/chatmessageview/_latestVersion)\n[![API](https://img.shields.io/badge/API-15%2B-blue.svg?style=flat)](https://android-arsenal.com/api?level=15)\n[![Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](https://github.com/bassaer/ChatMessageView/blob/master/LICENSE)\n\nThis library aims to provide a chat UI view for Android.\n\n\u003cimg src=\"https://github.com/bassaer/ChatMessageView/blob/master/images/screens.png\" height=\"285dp\"\u003e\n\n\u003cimg src=\"https://github.com/bassaer/ChatMessageView/blob/master/images/screen_1_3_0.png\" height=\"560dp\"\u003e\n\n\u003cimg src=\"https://github.com/bassaer/ChatMessageView/blob/master/images/screen.gif\" height=\"560dp\"\u003e\n\n## Feature\n\n- You need to write just few code to create chat view.\n- Auto date setting\n- Easy to use for bot app\n\n## Gradle\n[ ![Download](https://api.bintray.com/packages/tnakayama/ChatMessageView/chatmessageview/images/download.svg) ](https://bintray.com/tnakayama/ChatMessageView/chatmessageview/_latestVersion)\n\n```gradle\ndependencies {\n    implementation 'com.github.bassaer:chatmessageview:2.1.0'\n}\n```\n\n## Usage\n\n[How to use this library](https://github.com/bassaer/ChatMessageView/wiki)\n\n\nOnly MessageView\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cLinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n              android:orientation=\"vertical\"\n              android:layout_width=\"match_parent\"\n              android:layout_height=\"match_parent\"\u003e\n\n    \u003ccom.github.bassaer.chatmessageview.view.MessageView\n        android:id=\"@+id/message_view\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\"/\u003e\n\n\u003c/LinearLayout\u003e\n```\n\nChatView has MessageView and text box.\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cLinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n              android:orientation=\"vertical\"\n              android:layout_width=\"match_parent\"\n              android:layout_height=\"match_parent\"\u003e\n\n    \u003ccom.github.bassaer.chatmessageview.view.ChatView\n        android:id=\"@+id/chat_view\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\"/\u003e\n\n\u003c/LinearLayout\u003e\n```\n\nSample code\n\n```java\npublic class MessengerActivity extends Activity {\n\n    private ChatView mChatView;\n\n    @Override\n    public void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_messenger);\n\n        //User id\n        int myId = 0;\n        //User icon\n        Bitmap myIcon = BitmapFactory.decodeResource(getResources(), R.drawable.face_2);\n        //User name\n        String myName = \"Michael\";\n\n        int yourId = 1;\n        Bitmap yourIcon = BitmapFactory.decodeResource(getResources(), R.drawable.face_1);\n        String yourName = \"Emily\";\n\n        final User me = new User(myId, myName, myIcon);\n        final User you = new User(yourId, yourName, yourIcon);\n\n        mChatView = (ChatView)findViewById(R.id.chat_view);\n\n        //Set UI parameters if you need\n        mChatView.setRightBubbleColor(ContextCompat.getColor(this, R.color.green500));\n        mChatView.setLeftBubbleColor(Color.WHITE);\n        mChatView.setBackgroundColor(ContextCompat.getColor(this, R.color.blueGray500));\n        mChatView.setSendButtonColor(ContextCompat.getColor(this, R.color.cyan500));\n        mChatView.setSendIcon(R.drawable.ic_action_send);\n        mChatView.setRightMessageTextColor(Color.WHITE);\n        mChatView.setLeftMessageTextColor(Color.BLACK);\n        mChatView.setUsernameTextColor(Color.WHITE);\n        mChatView.setSendTimeTextColor(Color.WHITE);\n        mChatView.setDateSeparatorColor(Color.WHITE);\n        mChatView.setInputTextHint(\"new message...\");\n        mChatView.setMessageMarginTop(5);\n        mChatView.setMessageMarginBottom(5);\n\n        //Click Send Button\n        mChatView.setOnClickSendButtonListener(new View.OnClickListener() {\n            @Override\n            public void onClick(View view) {\n                //new message\n                Message message = new Message.Builder()\n                        .setUser(me)\n                        .setRight(true)\n                        .setText(mChatView.getInputText())\n                        .hideIcon(true)\n                        .build();\n                //Set to chat view\n                mChatView.send(message);\n                //Reset edit text\n                mChatView.setInputText(\"\");\n\n                //Receive message\n                final Message receivedMessage = new Message.Builder()\n                        .setUser(you)\n                        .setRight(false)\n                        .setText(ChatBot.talk(me.getName(), message.getText()))\n                        .build();\n\n                // This is a demo bot\n                // Return within 3 seconds\n                int sendDelay = (new Random().nextInt(4) + 1) * 1000;\n                new Handler().postDelayed(new Runnable() {\n                    @Override\n                    public void run() {\n                        mChatView.receive(receivedMessage);\n                    }\n                }, sendDelay);\n            }\n\n        });\n\n    }\n}\n\n```\n\n## License\n[Apache-2.0](https://github.com/bassaer/ChatMessageView/blob/master/LICENSE)\n","funding_links":[],"categories":["Libraries","聊天视图"],"sub_categories":["Android"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbassaer%2FChatMessageView","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbassaer%2FChatMessageView","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbassaer%2FChatMessageView/lists"}