基于Android Studio 制作仿微信APP界面完成在线聊天发布朋友圈等功能

🍅文章末尾有获取完整项目源码方式🍅

目录

一、引言       

二、视频效果

三、前期准备

四、详细设计与实现

1.启动页

2.登陆注册页

3.登录页

4.注册页

5.首页

6.聊天页面

7.通讯录页面

8.发现页面

9.我的页面

10. 个人信息页面

11.修改昵称页面

12.修改密码页面

13.朋友圈页面

14.发布页面

五、获取源码


一、引言       

       在当今快速发展的科技时代中,人工智能成为了一个炙手可热的话题。随着人工智能技术的不断发展,越来越多的应用场景被开发者们所关注,而智能聊天机器人就是其中之一。

      本文将介绍如何使用Android Studio开发一个制作微信APP界面完成在线聊天发布朋友圈等功能

二、视频效果

基于 Android Studio 实现仿微信App

三、前期准备

1.需要自己寻找一个机器人的api接口

2.自己准备图像素材

四、详细设计与实现

1.启动页

延迟跳转页面:通过Handler和Runnable实现延迟跳转到主页面(LoginActivity)。

计时器:通过CountDownTimer实现定时功能,在onFinish方法中移除延迟跳转的runnable。

 

2.登陆注册页

仿微信的登录注册页面,点击对应按钮跳转对应页面! 

3.登录页

通过findViewById获取了手机号输入框、密码输入框、登录按钮控件。 

4.注册页

实例化UserHelper对象。

通过findViewById获取了注册按钮,并为注册按钮设置了点击事件。

在这里我们可以上传自己喜欢的图片当作头像

若注册成功,跳转到登录页面(LoginActivity),并结束当前页面。

 

5.首页

通过Math.random()获取一个随机数,用于展示机器人的首次聊天信息。

定义了sendData方法,用于处理用户发送消息的逻辑,包括判断消息是否为空、添加到聊天记录列表中并更新界面,以及调用getDataFromServer方法从服务器获取机器人的回复。

getDataFromServer方法利用OkHttpClient向服务器发送请求,异步获取机器人的回复,并通过Handler将结果发送到主线程进行处理。

MHandler类继承自Handler,用于处理异步线程返回的消息。

paresData方法用于解析服务器返回的JSON数据,并根据结果更新界面。

showData方法用于展示接收到的机器人消息,更新聊天记录列表界面。

updateView方法根据服务器返回的状态码更新界面,例如展示特定的提示信息或者机器人的回复内容。

在onKeyDown方法中,实现了双击返回键退出程序的功能。

 

6.聊天页面

实现了默认显示所有注册的用户,这里只有名为安卓的聊天框可以聊天。 

7.通讯录页面

实现了默认显示所有注册的用户,这里只有名为安卓列表项可以聊天。


8.发现页面

该页面只有朋友圈可以点击使用,其他列表项为静态仿制页面。


9.我的页面

这里可以点击朋友圈、可以查看个人信息、默认显示登录用户的头像、昵称和手机号。


10. 个人信息页面

个人信息页面可以修改头像、修改昵称、修改用户密码、微信号不可以修改默认为手机号!最后就是可以退出登录。

11.修改昵称页面

还原微信的修改昵称页面。


12.修改密码页面

还原微信的修改密码页面。


13.朋友圈页面

用于展示微信朋友圈内容的界面。在这个界面上,用户可以查看朋友圈中的动态信息,并进行一些操作,比如添加新的朋友圈动态。

这里我们也是还原了微信朋友圈页面,点击右上角照相机可以进入发布页面!该页面只可以删除自己发布的朋友圈,也就是时间后边出现的删除图标可以删除。其余的非自己发布的朋友圈不可以删除。

1. 个人信息展示:该界面会展示当前用户的个人信息,包括用户名和头像。用户的头像会使用 Base64 编码存储在数据库中,这里会进行解码后显示。

2. 朋友圈动态展示:通过调用 PYQHelper 类中的方法,从数据库中获取所有的朋友圈动态数据,并显示在界面上。这些动态数据会按时间倒序排列,最新的动态会显示在最上方。

3. 添加新动态:用户可以通过点击界面上的加号图标来跳转到添加朋友圈动态的界面,以发布新的动态内容。

4. 返回功能:界面上有一个返回按钮,点击后可以返回到上一个界面。


14.发布页面

简化微信发布页面、实现图片的上传。

到此为止我们的项目介绍就已经完成了!

五、获取源码

关注公众号《编程乐学》

后台回复:24042801

回复后查看文章底部活动,有免费获取的机会哦!

👇👇👇快捷获取方式👇👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/583605.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot | Spring Security ( SpringBoot安全管理 )、Spring Security中 的 “自定义用户认证“

目录 : Spring Boot 安全管理 :一、Spring Security 介绍二、Spring Security 快速入门2.1 基础环境搭建 :① 创建Spring Boot 项目② 创建 html资源文件③ 编写Web控制层 2.2 开启安全管理效果测试 :④ 添加 spring-boot-starter-security 启动器⑤ 项目启动测试 三…

Dockerfile部署LNMP

目录 一、项目模拟 1. 项目环境 2. 服务器环境 3. 任务需求 二、Linux系统基础镜像 三、Nginx 1. 建立工作目录 2. 编写Dockerfile脚本 3. 准备nginx.conf配置文件 4. 生成镜像 5. 创建自定义网络 6. 启动镜像容器 7. 验证nginx 四、Mysql 1. 建立工作目录 2. …

# 使用 spring boot 时,@Autowired 注解 自动装配注入时,变量报红解决方法:

使用 spring boot 时,Autowired 注解 自动装配注入时,变量报红解决方法: 1、使用 Resource 代替 Autowired 注解,根据类型注入改为根据名称注入(建议)。 2、在 XXXMapper 上添加 Repository 注解&#xff0…

(2024,一致性模型,强化学习,MDP,DDPO)一致性模型的强化学习:更快的奖励引导文本到图像生成

RL for Consistency Models: Faster Reward Guided Text-to-Image Generation 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 部分图像上传缓慢,可看原论文或在 EDPJ 查看 目录 …

2024/4/29 英语每日一段

Many have turned to cheaper, hand-rolled tobacco instead of normal cigarettes, with young women telling The Times that the habit was a social way to get rid of “anxious energy”. The news comes as the government voted on Tuesday to phase out smoking in Br…

RCE复习(ctfhub下)

先了解一下命令注入的知识点: 知识点 1、常见的拼接符 A ; B 先执行A,再执行BA & B 简单的拼接A | B 显示B的执行结果A&&B A执行成功之后才会执行BA || B A执行失败之后才会执行B , 在特殊情况下可代替空格…

pytorch 实现语义分割 PSPNet

语意分割是指一张图片上包含多个物体,通过语义分割可以识别物体分类、物体名称、像素识别的任务。和物体检测不同,他不会将物体框出来,而是根据像素的归属把物体标注出来。PSPNet 的输入是一张图片,例如300500,那么输出…

Redis基本數據結構 ― List

Redis基本數據結構 ― List 介紹常用命令範例1. 將元素推入List中2. 取得List內容3. 彈出元素 介紹 Redis中的List結構是一個雙向鏈表。 LPUSH LPOP StackLPUSH RPOP QueueLPUSH BRPOP Queue(消息隊列) 常用命令 命令功能LPUSH將元素推入列表左端RPUSH將元素推入列表右…

特别推荐一个学习开发编程的网站

http://www.somecore.cn/ 为开发人员提供一系列好看的技术备忘单,方便开发过程中速查基本语法、快捷键、命令,节省查找时间,提高开发效率。 【人生苦短,抓住重点】

Java 面向对象—重载和重写/覆盖(面试)

重载和重写/覆盖: 重载(overload): Java重载是发生在本类中的,允许同一个类中,有多个同名方法存在,方法名可以相同,方法参数的个数和类型不同,即要求形参列表不一致。重载…

有趣的 CSS 图标整合技术!sprites精灵图,css贴图定位

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃-大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合…

【C语言进阶】程序编译中的预处理操作

📚作者简介:爱编程的小马,正在学习C/C,Linux及MySQL.. 📚以后会将数据结构收录为一个系列,敬请期待 ● 本期内容讲解C语言中程序预处理要做的事情 目录 1.1 预处理符号 1.2 #define 1.2.1 #define定义标识…

数据结构(01)——链表OJ

目录 移除链表元素 思路1 不创建虚拟头节点 思路2 创建虚拟头节点 反转链表 寻找链表中间节点 判断链表是否相交 回文链表 环形链表 环形链表|| 移除链表元素 . - 力扣(LeetCode) 要想移除链表的元素,那么只需要将目标节点的前一…

07_for循环返回值while循环

文章目录 1.循环返回值2.yield接收for返回值3.scala调用yield方法创建线程对象4.scala中的while循环5.scala中的流程控制 1.循环返回值 for循环返回值是Unit 原因是防止产生歧义; 2.yield接收for返回值 // 2.yield关键字打破循环,可以使for循环输出…

智慧农业设备——虫情监测系统

随着科技的不断进步和农业生产的日益现代化,智慧农业成为了新时代农业发展的重要方向。其中,虫情监测系统作为智慧农业的重要组成部分,正逐渐受到广大农户和农业专家的关注。 虫情监测系统是一种基于现代传感技术、图像识别技术和大数据分析技…

面试笔记——线程池

线程池的核心参数&#xff08;原理&#xff09; public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler)corePoolSize …

25计算机考研院校数据分析 | 四川大学

四川大学(Sichuan University)简称“川大”&#xff0c;由中华人民共和国教育部直属&#xff0c;中央直管副部级建制&#xff0c;是世界一流大学建设高校、985工程”、"211工程"重点建设的高水平综合性全国重点大学&#xff0c;入选”2011计划"、"珠峰计划…

PostgreSQL的学习心得和知识总结(一百四十)|深入理解PostgreSQL数据库 psql工具 \set 变量内部及HOOK机制

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

【能力展现】魔改ZXING源码实现商业级DM码检测能力

学习《OpenCV应用开发&#xff1a;入门、进阶与工程化实践》一书 做真正的OpenCV开发者&#xff0c;从入门到入职&#xff0c;一步到位&#xff01; 什么是DM码 dataMatrix是一种二维码&#xff0c;原名datacode&#xff0c;由美国国际资料公司于1989年发明。dataMatrix二维码…

GuildFi升级为Zentry的背后 链游公会的探索与转型

​链游即区块链游戏&#xff0c;指依托区块链技术构建的游戏产品。其与传统游戏的最大区别在于区块链的去中心化特性对玩家的资产有着天然的确权行为&#xff0c;因此玩家在链游中的资产是作为玩家的个人资产存在。较于 GameFi 来说&#xff0c;链游的包含范围更大&#xff0c;…