- 博客(99)
- 收藏
- 关注
原创 鸿蒙UI开发——小图标的使用
相较于effectStrategy属性启动即触发动效,可以通过以下两种方式控制动效的播放状态以及更多样的动效策略选择。1)通过symbolEffect属性同时设置SymbolGlyph的动效策略及动效播放状态。。
2024-11-11 23:29:23
634
原创 鸿蒙开发实战——抽奖转盘
有朋友留言:能出一个抽奖转盘的教程吗 网上好像没有鸿蒙做圆形扇形的源码,最好做个可以选择自增的 类似于根据数组元素自增扇形切割圆形面积的。这里咱们就讨论下这个实现方案。先看效果(文末有源代码):中间有一个大圆盘,圆盘顶部有一个指针,圆盘正中央有一个圆形的“开始/结束”控制按钮。
2024-11-11 23:23:42
408
原创 鸿蒙UI开发——自定义UI绘制帧率
如果我们需要以独立的帧率绘制更新操作UI界面时,可以通过DisplaySync来实现。class DisplaySync { // 设置期望的帧率范围。setExpectedFrameRateRange(rateRange: ExpectedFrameRateRange) : void // 订阅每一帧变化 on(type: 'frame', callback: Callback): void // 取消订阅每一帧的变化 off(type: 'frame', callback。
2024-11-10 22:36:15
708
原创 鸿蒙多线程开发——同步任务处理
目前,多线程的开发我们已经学过TaskPool和Worker两种方式:TaskPool参看Worker参看我们现在讨论下多线程的同步任务处理。同步任务是指在多个线程之间协调执行的任务,其目的是确保多个任务按照一定的顺序和规则执行,例如使用锁来防止数据竞争。由于TaskPool偏向于单个独立的任务,因此当各个同步任务之间相对独立时推荐使用TaskPool,例如一系列导入的静态方法,或者单例实现的方法。如果同步任务之间有关联性,则需要使用Worker,例如无法单例创建的类对象实现的方法。
2024-11-10 22:32:45
356
原创 鸿蒙UI开发——实现环形文字
有朋友提问:您好关于鸿蒙UI想咨询一个问题 如果我想实现展示环形文字是需要通过在Text组件中设置transition来实现么,还是需要通过其他方式来实现。针对这位粉丝朋友的提问,我们做一下解答。❓ 什么是环形文字效果?这位朋友没有给出具体想要的环形文字的描述,按照我的理解,环形文字效果大致如下:⭐️ 问题分析在鸿蒙开发中,通过文字样式设置很难达到环形文字效果,如果想实现,我这边首先想到的是,使用RichText富文本组件去实现这个效果。(RichText富文本组件的使用在之前的文章中有介绍,详见鸿蒙UI系
2024-11-09 20:29:14
734
原创 鸿蒙多线程开发——Worker多线程
Worker主要作用是为应用程序提供一个多线程的运行环境,可满足应用程序在执行过程中与主线程分离,在后台线程中运行一个脚本进行耗时操作,极大避免类似于计算密集型或高延迟的任务阻塞主线程的运行。创建Worker的线程称为宿主线程(不一定是主线程,工作线程也支持创建Worker子线程),Worker自身的线程称为Worker子线程(或Actor线程、工作线程)。
2024-11-09 20:24:06
1156
原创 鸿蒙多线程开发——TaskPool任务池
TaskPool 作用是为应用程序提供一个多线程的运行环境,降低整体资源的消耗、提高系统的整体性能,且您无需关心线程实例的生命周期。有一定开发经验的朋友应该对线程池不陌生。大致描述如下:TaskPool允许开发者在主线程封装任务抛给任务队列,系统选择合适的工作线程,进行任务的分发及执行,再将结果返回给主线程。接口直观易用,支持任务的执行、取消,以及指定优先级的能力,同时通过系统统一线程管理,结合动态调度及负载均衡算法,可以节约系统资源。
2024-11-07 22:47:37
714
原创 鸿蒙多线程开发——并发模型对比(Actor与内存共享)
并发是指在同一时间段内,能够处理多个任务的能力。为了提升应用的响应速度与帧率,以及防止耗时任务对主线程的干扰,HarmonyOS系统提供了异步并发和多线程并发两种处理策略。指异步代码在执行到一定程度后会被暂停,以便在未来某个时间点继续执行,这种情况下,同一时间只有一段代码在执行。它允许在同一时间段内同时执行多段代码。在主线程继续响应用户操作和更新UI的同时,后台也能执行耗时操作,从而避免应用出现卡顿。并发能力在多种场景中都有应用,其中包括单次I/O任务、CPU密集型任务、I/O密集型任务和同步任务等。
2024-11-07 22:43:48
914
原创 鸿蒙开发——进程模型与进程通信
进程是一个正在执行的程序的实例。当我们启动一个程序时,操作系统会创建一个进程,分配给它所需的资源,如内存和CPU时间。每个进程至少有一个线程,即执行线程,负责执行程序的指令。进程是操作系统进行资源分配和调度的基本单位,是操作系统提供给用户和应用程序的一个抽象概念。在鸿蒙的进程模型中,进程被分为三类:主进程(负责UI的进程)、扩展进程(负责大部分ExtensionAbility)、WebView渲染进程(负责网页渲染的独立进程)。
2024-11-05 22:53:06
1065
原创 鸿蒙开发——线程内通信
在介绍鸿蒙开发中线程间通信问题前,我们先解释下什么是线程。在计算机科学中,线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。这么说是不是太抽象了?咱们换成通俗的话来说:假如把一个正在运行的程序想象成一个大工厂。这个工厂在运作的时候,有很多不同的任务要做。线程呢,就像是工厂里的一个的(不同的科室)。每个工人小组(线程)都可以独立地干活,去完成特定的一小部分任务。比如有的工人小组专门负责把原材料搬进工厂,有的专门负责在生产线上组装零件,还有的专门负责把成品打包运出去。
2024-11-05 22:49:01
734
原创 鸿蒙UI系统组件18——模态交互框(ModelDialog)
需要根据场景传入自定义组件填充在弹窗中实现自定义的弹窗内容。下面以AlertDialog、ActionSheet 和 CustomDialog为例说明相应的弹窗效果与使用方法。
2024-10-28 23:14:52
1560
原创 鸿蒙UI开发——基于组件安全区方案实现沉浸式界面
本文是接着上篇文章鸿蒙UI开发——基于全屏方案实现沉浸式界面的继续讨论。除了全屏方案实现沉浸式界面外,我们还可以使用组件安全区的方案。
2024-10-28 23:10:04
756
原创 鸿蒙UI开发——基于全屏方案实现沉浸式界面
典型应用全屏窗口UI元素包括状态栏、应用界面和底部导航条。其中状态栏和导航条,通常在沉浸式布局下称为避让区,避让区之外的区域称为安全区。开发应用沉浸式效果主要指:通过调整状态栏、应用界面和导航条的显示效果来减少状态栏导航条等系统界面的突兀感,保证应用的整体观感。
2024-10-27 20:43:55
1143
1
原创 鸿蒙文本组件高级特性——富文本属性字符串
属性字符串StyledString/MutableStyledString(MutableStyledString继承于StyledString,以下统一简称StyledString)是功能强大的标记对象,可用于字符或段落级别设置文本样式。通过将StyledString附加到文本组件, 可以通过多种方式更改文本,包括修改字号、添加字体颜色、使文本可点击以及自定义方式绘制文本等。
2024-10-27 20:37:24
692
原创 鸿蒙UI系统组件17——富文本展示(RichText)
👉🏻 组件接口👉🏻 事件👉🏻 属性目前RichText组件只支持width,height,size,layoutWeight四个属性。👉🏻 组件支持渲染的HTML标签被用来定义HTML,定义重要等级最高的标题,定义重要等级最低的标题。定义段落。插入一个简单的换行符。设置规定文本的字体、字体尺寸、字体颜色。
2024-10-25 22:15:24
843
原创 鸿蒙跨设备协同开发08——使用分布式数据对象接续应用
分布式数据对象提供管理基本数据对象的相关能力,包括创建、查询、删除、修改、订阅等;同时支持相同应用多设备间的分布式数据对象协同能力。分布式数据对象由 @ohos.data.distributedDataObject 模块提供能力。// 创建一个分布式数据对象create(context: Context, source: object): DataObject// 随机创建一个sessionIdgenSessionId(): string。
2024-10-25 22:12:09
1202
原创 鸿蒙跨设备协同开发07——动态控制应用接续
如果你也对感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。
2024-10-18 21:26:01
731
原创 鸿蒙跨设备协同开发06——应用接续
如果你也对感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。
2024-10-18 21:21:56
1259
原创 鸿蒙跨设备协同开发05——跨设备拖拽
当用户拥有两台平板设备时,可以共享一套键鼠,通过跨设备拖拽,一步将设备A的素材拖拽到设备B快速创作,实现跨设备的协同工作体验。演示如下:跨端拖拽提供跨设备的键鼠共享能力,支持在平板或2in1类型的任意两台设备之间拖拽文件、文本。当前HarmonyOS系统应用中,文件管理器、浏览器支持拖出;备忘录支持拖入。用户可以体验以下场景:将A设备文件管理器中的图片拖拽至B设备的备忘录应用。将A设备备忘录中的文本拖拽至B设备的备忘录应用,并在B设备中使用A设备连接的键盘输入,协同操作。
2024-10-16 22:59:43
1005
原创 鸿蒙跨设备协同开发04——跨设备剪切板开发
当用户拥有多台设备时,可以通过跨设备剪贴板的功能,在A设备的应用上复制一段文本,粘贴到B设备的应用中,高效地完成多设备间的内容共享。剪贴板分为本地剪贴板和跨设备剪贴板,本地剪贴板提供设备内的内容复制粘贴,跨设备剪贴板提供跨设备的内容复制粘贴。如果我们正在开发一款浏览器类应用,或是备忘录、笔记、邮件等富文本编辑类应用时,均可接入跨设备剪贴板,提升用户体验。过程示意如下:使用跨设备剪切板能力有以下几点条件需要注意:双端设备需要登录同一华为账号。双端设备需要打开Wi-Fi和蓝牙开关。
2024-10-16 22:54:00
384
原创 鸿蒙网络管理模块07——网络质量管理
HarmonyOS提供了一套网络网络质量管理的套件(Network Boost Kit),它可以实现网络加速、网络感知、网络质量预测等能力,通过软、硬、芯、端、管、云等全方位的协同解决方案实现网络资源的调优和加速,构筑更可靠、更流畅、更高速的上网体验。在使用相关API时,需要申请设备网络信息权限:ohos.permission.GET_NETWORK_INFO。需要在entry/src/main路径下的module.json5中配置所需申请的权限。
2024-10-13 20:43:19
758
原创 鸿蒙跨设备协同开发03——分布式设备管理
如果你也对感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。
2024-10-13 20:38:03
786
原创 鸿蒙跨设备协同开发02——RichEditor跨设备获取文件
我们已经在鸿蒙UI系统组件16——富文本编辑器(RichEditor)已经讨论过HarmonyOS提供的富文本编辑器了,文章中主要介绍了基本的和文本操作相关的API,例如:内容选中、用户预设样式、背景板高亮等。除此之外,RichEditor组件还集成了另一种重要功能 —— 跨设备互通能力,通过使用富文本控件RichEditor的右键菜单即可使用跨设备互通能力。跨设备互通提供跨设备的相机、扫描、图库访问能力,平板或2in1设备可以调用手机的相机、扫描、图库等功能。
2024-10-12 21:10:00
417
原创 鸿蒙UI系统组件16——富文本编辑器(RichEditor)
options是SymbolSpan组件选项,用于添加SymbolSpan组件的偏移位置和SymbolSpan组件样式信息( RichEditorSymbolSpanOptions ),添加SymbolSpan内容,如果组件光标闪烁,插入后光标位置更新为新插入Symbol的后面】。options是图片选项,用于添加图片的偏移位置和图片样式信息(RichEditorImageSpanOptions), 添加图片内容,如果组件光标闪烁,插入后光标位置更新为新插入图片的后面】。
2024-10-12 21:05:15
1339
原创 鸿蒙跨设备协同开发01——跨设备获取照片
HarmonyOS的一个非常大的特点就是跨设备协同。针对开发者,HarmonyOS提供了一套协同服务套件(Service Collaboration Kit)提供了同账号下多端设备的协同能力。用户通过此能力实现跨设备交互,使用其他设备的相机、扫描和图库功能。需要注意的是,使用跨设备协同能力,设备需要具备以下基本条件:双端设备需要登录同一华为账号;双端设备需要打开WLAN和蓝牙开关。
2024-10-10 23:14:41
861
原创 鸿蒙网络管理模块06——使用rcp发送HTTP请求
rcp是HarmonyOS中的远场通信套件(Remote Communication Kit)中提供的一套便捷的HTTP请求模块。我们在开发应用时,可以方便的通过Remote Communication Kit快速地向服务器发起数据请求。❓ 可能有朋友会问:这个rcp和之前提到的@kit.NetworkKit中的http有啥区别?答:都是发起HTTP请求的一个方式,但更推荐使用rcp,未来将持续迭代更新这部分内容。
2024-10-10 23:11:05
1207
原创 鸿蒙网络管理模块05——数据流量统计
HarmonyOS供了基于物理网络的数据流量统计能力,支持基于网卡/UID 的流量统计。主要实现的功能如下:支持基于网卡/UID 的实时流量统计。支持基于网卡/UID 的历史流量统计。支持基于网卡/UID 的流量变化订阅。数据流量统计能力由 statistics 模块提供。目前HarmonyOS提供的数据流量统计的能力有9种,我们分别讨论。
2024-10-09 22:58:04
801
原创 异步场景: promise、async函数与await命令介绍
如果你也对感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。在鸿蒙的开发中,我们时常会遇到promise异步场景,有同学反馈说希望提一下。异步开发这部分的内容比较多,我不确定这位朋友具体想讨论是哪些方面,那我从两部分来讨论下,希望能提供一些帮助:1. 基本的开发角度,常用使用方法;2. 拿一个问题来讨论调用关系。
2024-10-09 22:44:51
905
原创 鸿蒙网络管理模块04——网络连接管理
网络连接管理提供管理网络一些基础能力,包括WiFi/蜂窝/Ethernet等多网络连接优先级管理、网络质量评估、订阅默认/指定网络连接状态变化、查询网络连接信息、DNS解析等功能。需要注意的是,由于API是对网络管理,因此大部分API都是异步的(如果对异步场景不熟悉,可以参考同时推送的另一篇文章【异步场景: promise、async函数与await命令介绍】)。数据网络的提供方,比如WiFi、蜂窝、Ethernet等。数据网络的使用方,比如应用或系统服务。
2024-10-04 18:12:04
1115
原创 鸿蒙网络管理模块03——多播DNS管理
多播DNS也简称MDNS(Multicast DNS),他主要提供局域网内的本地服务管理能力(添加/移除/解析和发现服务)。❓ 什么是本地服务?指的是在区域网内服务的提供方,典型的例子有:打印机、扫描器。需要特别注意的是:由于多播DNS相关的管理都是基于网络,因此大部分情况下,HarmonyOS提供的API都是异步API。MDNS模块相关的API介绍类图整理如下:MDNS模块的使用分为两个主要场景:a)管理本地服务(添加/移除/解析);b)发现本地服务。下面这对这两个场景做简单介绍。
2024-10-04 18:08:06
1018
原创 鸿蒙网络管理模块02——Socket
Socket 连接主要是通过 Socket 进行数据传输,支持 TCP/UDP/Multicast/TLS 协议。主要涉及到的场景有:应用通过 TCP/UDP Socket进行数据传输应用通过 TCP Socket Server 进行数据传输应用通过 Multicast Socket 进行数据传输应用通过 Local Socket进行数据传输应用通过 Local Socket Server 进行数据传输应用通过 TLS Socket 进行加密数据传输。
2024-10-02 16:28:07
941
原创 鸿蒙网络管理模块01——HTTP与WebSocket请求数据
通过HTTP发起一个数据请求。使用WebSocket建立服务器与客户端的双向连接。通过Socket进行数据传输。需要注意的是,使用网络管理模块相关功能时,需要申请相应的权限。获取网络连接信息修改网络连接状态运行程序进行网络连接本文先介绍发起HTTP数据请求与WebSocket连接。
2024-10-02 16:22:23
1540
原创 鸿蒙媒体开发系列17——图片编码与EXIF处理
如果你也对感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。
2024-10-01 16:39:54
616
原创 鸿蒙媒体开发系列16——图像变换与位图操作
图片处理指对PixelMap进行相关的操作,如获取图片信息、裁剪、缩放、偏移、旋转、翻转、设置透明度、读写像素数据等。图片处理主要包括图像变换、位图操作。需要注意的是,本文是接续鸿蒙媒体开发系列15——图片解码(PixcelMap)的内容。后文所有的讨论就基于PixcelMap实例来操作。
2024-10-01 16:37:07
456
原创 鸿蒙媒体开发系列15——图片解码(PixcelMap)
应用开发中的图片开发是对图片像素数据进行解析、处理、构造的过程,达到目标图片效果,主要涉及图片解码、图片处理、图片编码等。在学习图片开发前,需要熟悉以下基本概念。图片解码指将所支持格式的存档图片解码成统一的PixelMap,以便在应用或系统中进行图片显示或图片处理。当前支持的存档图片格式包括JPEG、PNG、GIF、RAW、WebP、BMP、SVG。PixelMap指图片解码后无压缩的位图,用于图片显示或图片处理。图片处理。
2024-09-29 21:43:54
739
原创 鸿蒙媒体开发系列14——视频播放开发
功能较完善的音视频播放ArkTS/JS API,集成了流媒体和本地资源解析,媒体资源解封装,视频解码和渲染功能,适用于对媒体资源进行端到端播放的场景,可直接播放mp4、mkv等格式的视频文件。封装了视频播放的基础能力,需要设置数据源以及基础信息即可播放视频,但相对扩展能力较弱。Video组件在鸿蒙UI开发中已经有介绍,可以移步到👉🏻鸿蒙UI系统组件07——视频播放器(Video)查看本文讨论使用AVPlayer开发视频播放功能,实现端到端播放原始媒体资源。
2024-09-29 21:40:12
1419
原创 鸿蒙媒体开发系列13——音频通话开发
常用的音频通话模式包括VOIP通话和蜂窝通话。VOIP通话:VOIP(Voice over Internet Protocol)通话是指基于互联网协议(IP)进行通讯的一种语音通话技术。VOIP通话会将通话信息打包成数据包,通过网络进行传输,因此VOIP通话对网络要求较高,通话质量与网络连接速度紧密相关。蜂窝通话: 蜂窝通话是指传统的电话功能,由运营商提供服务,目前仅对系统应用开放,目前鸿蒙暂未向三方应用提供开发接口。
2024-09-28 21:06:21
789
原创 鸿蒙媒体开发系列12——音频输入设备管理(AudioRoutingManager)
有时设备同时连接多个音频输入设备,需要指定音频输入设备进行音频录制,此时需要使用AudioRoutingManager接口进行输入设备的管理。感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。在使用AudioRoutingManager管理音频设备前,需要先导入模块并创建实例。可以设置监听事件来监听设备连接状态的变化,当有设备连接或断开时触发回调:。USB耳机,带麦克风。有线耳机,带麦克风。
2024-09-28 21:01:42
286
原创 鸿蒙媒体开发系列11——音频/录制流状态
如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。对于录制音频类的应用,我们需要关注该应用的音频流的状态以做出相应的操作,比如监听到状态为结束时,及时提示用户录制已结束。,可以通过以下两种方式查看音频流状态的变化:});获取state后可对照AudioState来进行相应的操作,比如显示录制结束的提示等。
2024-09-27 23:21:11
672
原创 鸿蒙媒体开发系列10——麦克风管理(AudioVolumeGroupManager)
如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。在AudioVolumeGroupManager中提供了管理麦克风状态的方法。下面对核心开发步骤做个简单介绍。
2024-09-27 23:17:56
320
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅