前言在日常开发中,不同的应用程序都有自己专属的键盘,特别是在评论和发帖中需要自定义表情键盘,鸿蒙中对自定义键盘提供了很好的支持,本篇文章将带你一步步实现一个自定义表情键盘,建议点赞收藏!实现效果需求分析●对数据源进行拆分组合。●处理表情之间的间隔与删除表情的位置。●实现表情键盘的布局。技术实现1.定义一个数组用来临时存放表情字符letarray:string[]["😁","😂","😃","😄","😅","😆","😉","😊","😋","😌","...
2025-06-29 20:51:30 614浏览 0点赞 0回复 0收藏
前言事件通知在日常开发中十分重要,不同页面之间的事件通信都会用到事件通知,作为Android开发的小伙伴相信都用过EventBus,LiveDataEventBus等事件通信工具。鸿蒙开发中也同样需要一个页面之间通信等工具,本篇文章教你在鸿蒙开发中如何实现一个HEventBus,建议点赞收藏!需求分析●全局只存在唯一实例。●支持事件注册,反注册。●支持一次发送,多处接收。技术实现单例实现在鸿蒙中使用创建静态对象实现单例,首先定义一个...
2025-06-29 10:16:03 1402浏览 0点赞 0回复 0收藏
前言最近在鸿蒙项目开发过程中,测试提出图片预览时无法下载的bug,这么简单的功能怎么会有问题。一开始还以为是手机的问题或者网络不好,拿到测试机复现问题的时候发现下载的Gif图确实无法下载成功,报了个2300023错误码,查看鸿蒙文档才发现图片下载时使用的是http请求,但是http请求限制了流的大小为5M,而Gif的大小超过了限制,本篇文章将详细带你一步步解决这个问题,同时解决图片链接为png但是下载后是Gif图的问题,建议...
2025-06-28 16:03:10 2379浏览 0点赞 0回复 0收藏
背景在最近日常工作中,遇到需要实现拖拽列表中的元素进行位置交换的需求。第一时间翻看了鸿蒙官方文档,发现官方只给Grid提供了Item交换位置的实现方式,然而List并没有提供,于是需要自己动手去实现。本篇文章详细介绍了两种不同的方式去实现List的位置交换。技术实现方式一使用列表的手势事件实现位置交换。1.先实现List的onItemDragStart方法。该方法表示拖拽列表元素时触发。java.onItemDragStart((event:ItemDragInfo,ind...
2025-06-16 16:40:20 600浏览 0点赞 0回复 0收藏
前言华为仓颉语言除了提供原子操作,可重入互斥锁和Monitor用来保证多线程并发安全之外,还提供了MultiConditionMonitor,synchronized和ThreadLocal三种同步机制解决线程间同步问题。本篇文章详细介绍这三种同步机制的作用原理及使用,建议点赞收藏!同步机制MultiConditionMonitorMultiConditionMonitor继承于可重入互斥锁ReentrantMutex,并提供了一个newCondition()方法用来动态创建条件变量,解决复杂场景下线程间同步问题。...
2025-06-16 14:01:07 2055浏览 0点赞 0回复 0收藏
前言线程同步机制是多线程下解决线程对共享资源竞争的主要方式,华为仓颉语言提供了三种常见的同步机制用来保证线程同步安全,分别是原子操作,互斥锁和条件变量。本篇文章详细介绍主要仓颉语言解决同步机制的方法,建议点赞收藏!同步机制原子操作和java一样,仓颉也支持使用原子操作(Atomic)用来确保多线程下的数据访问安全。主要是提供整数类型,布尔类型和引用类型三种方式。以整数类型为例,原子变量Atomic包括8位(AtomicI...
2025-06-16 14:00:13 2132浏览 0点赞 0回复 0收藏
前言经过前面几篇文章的介绍,基本实现了鸿蒙IM聊天的功能,但是完整的腾讯IM不仅拥有发送文本的功能,还支持消息的失败重发,删除和撤回等相关功能,本篇文章将详细介绍如何实现这些功能,建议点赞收藏!实现效果需求分析+支持消息撤回+支持消息删除+支持消息重发技术实现消息撤回当用户发出IM消息后,需要支持在固定时间段内允许用户撤回已经发出的消息,这里默认为120秒,而且只允许自己发送的消息撤回。使用消息撤回功能需...
2025-06-16 13:59:42 2274浏览 0点赞 0回复 0收藏
前言鸿蒙版本腾讯IM的聊天功能十分复杂,需要开发者手动实现整个聊天对话的业务代码,这对开发者来说是个不小的挑战。本篇文章先从最基础的聊天对话列表开始教你一步一步实现完整的聊天功能,建议点赞收藏!实现效果先看本文最终的基本实现效果。需求分析+对话列表左右排列+支持发送文本消息+支持实时接收消息+支持拉取历史消息技术实现获取历史消息1.当从会话列表进入聊天详情页面时,首先拉取最新历史消息。可以通过设置参数...
2025-06-16 13:59:05 2089浏览 0点赞 0回复 0收藏
前言因日常工作需要使用鸿蒙版腾讯IM聊天功能,但是腾讯IM只提供了相关接口,并没有像安卓和iOS一样提供配套的UI页面。这点不得不吐槽一下腾讯,作为互联网巨头鸿蒙开发进度怎么就这么慢,没办法只能对比着微信自己一点点去实现相关功能,本篇文章将详细介绍聊天列表页面的搭建过程,建议点赞收藏!实现效果先看本文的最终实现效果如下:需求分析+支持删除功能。+支持按照收到消息的时间排序。+支持消息更新及插入新消息。技术...
2025-06-16 13:58:24 1889浏览 0点赞 0回复 0收藏
前言并发编程是现代编程语言中不可或缺的特性,不管是java,kotlin,python,还是仓颉语言都离不开线程的使用,熟练掌握并使用线程是日常开发中处理耗时操作或处理并发有效提高应用程序的性能,本篇文章将详细介绍线程在仓颉语言中的基本使用,建议点赞收藏!线程创建在仓颉语言中使用spawn关键字创建一个仓颉线程,类似kotlin中的thread,仓颉已经封装好了线程的创建细节,开发者直接使用关键字spawn即可创建线程。javascripts...
2025-06-16 13:57:43 1976浏览 0点赞 0回复 0收藏
前言日常开发过程中,遇到这种Scroll嵌套List列表滑动顶部悬停的场景十分常见,在鸿蒙开发时也正好实现了这个功能,本篇文章将带你一步步实现Tab顶部悬停的效果,建议点赞收藏!实现效果先看本文的最终实现效果如下:需求分析+当整体向上滑动时,优先Scroll向上滑动。+当整体向下滑动时,优先Scroll向下滑动。技术实现1.首先需要实现基础页面布局,直接使用Scroll嵌套List布局。将List用Tab布局嵌套起来。javascriptScroll(this...
2025-06-16 13:56:49 477浏览 0点赞 0回复 0收藏
前言最近在日常鸿蒙开发过程中,经常会使用一些时间选择器,鸿蒙官方提供的时间选择器满足不了需求,所以自己动手自定义一些经常会使用到的时间选择器,希望能帮到你,建议点赞收藏!实现效果需求分析1.默认选中日期为当前时间。2.支持精确到时分。3.注意闰年的计算。技术实现1.首先要想实现时间选择器,需要使用一个上下可以滚动的控件,这里使用鸿蒙官方提供的TextPicker,TextPicker控件支持内容的上下滚动,可以用来显示年月...
2025-06-16 13:55:59 764浏览 0点赞 0回复 0收藏
前言年前公司与华为签订了合作备忘录,加入了鸿蒙生态这个大家庭。。公司想赶着鸿蒙纯血系统上市之前,发布自己的鸿蒙软件。开发鸿蒙NEXT版本软件就变成了今年的一个工作重心。本文主要讲解开发过程中遇到的并发问题,官方API11文档写的太简单了,根本没有解决方案,小编也是苦思冥想,绞尽脑汁才找到解决方案。需要开发鸿蒙的小伙伴可以仔细阅读,避免踩坑。问题在开发清除缓存的功能时,鸿蒙NEXT提供的文档中说明,应用缓存文...
2025-06-16 13:54:50 618浏览 0点赞 0回复 0收藏
前言保存图片功能几乎是每个应用程序必备的功能之一,当用户遇到喜欢的图片时可以保存到手机相册。那么在鸿蒙中保存图片是否也需要申请用户存储权限以及如何将图片保存到相册,本文将详细讲述怎么保存网络图片,指定布局生成图片保存至相册的功能实现。实现效果需求分析一般在Android或iOS上保存图片都需要申请应用存储权限,否则将禁止访问应用存储,不能保存图片到磁盘中。在鸿蒙系统中当然也有存储权限,但是鸿蒙系统对于权...
2025-06-16 13:53:03 2194浏览 0点赞 0回复 0收藏
前言广告功能基本上算是每个软件的必备功能之一,常见的除了轮播图,列表之外,就是上下滚动的形式。广告内容不仅支持上下滚动,还需要支持手势操作,以及关闭当前正在预览的广告内容。在Android或iOS上要想实现这样的功能并不容易,那么在鸿蒙上怎么实现这样的功能呢?本篇文章教你使用最简单的方式实现一个支持上下滚动的广告控件,建议点赞收藏!实现效果需求分析1.广告控件支持基本的上下自动滚动和手动滑动。2.支持广告删...
2025-06-16 13:52:17 741浏览 0点赞 0回复 0收藏
前言快递信息时间轴在购物软件中是必不可少的功能,通过时间轴可以展示快递从发货到派送的每一个环节。本篇文章通过代码的形式详细讲解在鸿蒙日常开发中如何实现时间轴的效果。(篇尾附有完整源码)实现效果先看最终实现的效果,下面通过代码讲解怎么一步步实现时间轴。需求分析1.快递信息时间轴整体包括三个状态:开始状态,当前状态,未达状态。2.不同状态对应标题颜色及图标不同。3.字体颜色可根据状态的不同改变。4.提示文字...
2025-06-16 13:51:39 557浏览 0点赞 0回复 0收藏
前言地图定位功能基本上已经成了日常应用程序的必备功能之一,在日常开发地图定位的功能的时候难免会遇到很多意想不到的问题,本篇文章记录日常开发过程中的细节与完整的流程,帮助更多的开发者避免遇到类似的问题,建议点赞收藏!实现效果需求分析+首先需要实现一个自定义的图标替代系统默认的箭头。+获取定位权限与位置信息。+获取定位结果并展示当前位置。技术实现1.在鸿蒙的实际开发过程中,地图定位权限首先需要申请两个权...
2025-06-16 13:50:53 902浏览 0点赞 0回复 0收藏
前言地图定位功能相信很多人都用过,在鸿蒙的应用程序开发中,使用高德地图的定位功能变得十分常见,那么在鸿蒙中一次完整的地位功能怎么实现?如果定位失败了,能否获取前几次的定位呢?本篇文章带你实现一个完整的定位功能流程,建议点赞收藏!需求分析要想实现一个完整的定位需求流程,就必须要做好准备工作,了解实现需求的具体步骤。+权限申请+检查GPS是否打开+单次定位还是多次定位+定位失败处理技术实现要想实现一次完整...
2025-06-16 13:50:06 3419浏览 0点赞 0回复 0收藏
前言华为仓颉语言是鸿蒙原生应用的一种新的编程语言,采用面向对象的编程思想,为开发者带来新的开发体验。不仅可以和ArkTs相互调用,更能提升应用程序的性能,更重要的是仓颉语言的特点结合了java和C的特点。对开发者来说比较容易上手学习,本篇文章主要是详细介绍仓颉语言中的结构体struct和类class的区别,建议点赞收藏!结构体Struct1.仓颉中的结构体以strcut作为开头,后面跟着结构体的名称,并以花括号作为主体部分,stru...
2025-06-16 13:49:08 860浏览 0点赞 0回复 0收藏
前言轮播图作为应用程序中最普通使用的控件被广泛应用,相信对于来发者来说并不陌生。在Android中实现一个轮播图很多选择使用第三方的插件,毕竟在有限的开发排期中自己动手去实现一个轮播图并不那么简单,需要考虑的细节很多。不过在HarmonyOS中实现一个轮播图却是十分的简单,本篇文章教你在最短的时间内快速实现一个自定义的轮播图,建议点赞收藏!实现效果需求分析+支持自定义循环播放,自动播放。+支持自定义播放时间间隔...
2025-06-16 13:48:08 862浏览 0点赞 0回复 0收藏