鸿蒙UI开发——小图标的使用 相较于effectStrategy属性启动即触发动效,可以通过以下两种方式控制动效的播放状态以及更多样的动效策略选择。1)通过symbolEffect属性同时设置SymbolGlyph的动效策略及动效播放状态。。
鸿蒙开发实战——抽奖转盘 有朋友留言:能出一个抽奖转盘的教程吗 网上好像没有鸿蒙做圆形扇形的源码,最好做个可以选择自增的 类似于根据数组元素自增扇形切割圆形面积的。这里咱们就讨论下这个实现方案。先看效果(文末有源代码):中间有一个大圆盘,圆盘顶部有一个指针,圆盘正中央有一个圆形的“开始/结束”控制按钮。
鸿蒙UI开发——自定义UI绘制帧率 如果我们需要以独立的帧率绘制更新操作UI界面时,可以通过DisplaySync来实现。class DisplaySync { // 设置期望的帧率范围。setExpectedFrameRateRange(rateRange: ExpectedFrameRateRange) : void // 订阅每一帧变化 on(type: 'frame', callback: Callback): void // 取消订阅每一帧的变化 off(type: 'frame', callback。
鸿蒙多线程开发——同步任务处理 目前,多线程的开发我们已经学过TaskPool和Worker两种方式:TaskPool参看Worker参看我们现在讨论下多线程的同步任务处理。同步任务是指在多个线程之间协调执行的任务,其目的是确保多个任务按照一定的顺序和规则执行,例如使用锁来防止数据竞争。由于TaskPool偏向于单个独立的任务,因此当各个同步任务之间相对独立时推荐使用TaskPool,例如一系列导入的静态方法,或者单例实现的方法。如果同步任务之间有关联性,则需要使用Worker,例如无法单例创建的类对象实现的方法。
鸿蒙UI开发——实现环形文字 有朋友提问:您好关于鸿蒙UI想咨询一个问题 如果我想实现展示环形文字是需要通过在Text组件中设置transition来实现么,还是需要通过其他方式来实现。针对这位粉丝朋友的提问,我们做一下解答。❓ 什么是环形文字效果?这位朋友没有给出具体想要的环形文字的描述,按照我的理解,环形文字效果大致如下:⭐️ 问题分析在鸿蒙开发中,通过文字样式设置很难达到环形文字效果,如果想实现,我这边首先想到的是,使用RichText富文本组件去实现这个效果。(RichText富文本组件的使用在之前的文章中有介绍,详见鸿蒙UI系
鸿蒙多线程开发——Worker多线程 Worker主要作用是为应用程序提供一个多线程的运行环境,可满足应用程序在执行过程中与主线程分离,在后台线程中运行一个脚本进行耗时操作,极大避免类似于计算密集型或高延迟的任务阻塞主线程的运行。创建Worker的线程称为宿主线程(不一定是主线程,工作线程也支持创建Worker子线程),Worker自身的线程称为Worker子线程(或Actor线程、工作线程)。
鸿蒙多线程开发——TaskPool任务池 TaskPool 作用是为应用程序提供一个多线程的运行环境,降低整体资源的消耗、提高系统的整体性能,且您无需关心线程实例的生命周期。有一定开发经验的朋友应该对线程池不陌生。大致描述如下:TaskPool允许开发者在主线程封装任务抛给任务队列,系统选择合适的工作线程,进行任务的分发及执行,再将结果返回给主线程。接口直观易用,支持任务的执行、取消,以及指定优先级的能力,同时通过系统统一线程管理,结合动态调度及负载均衡算法,可以节约系统资源。
鸿蒙多线程开发——并发模型对比(Actor与内存共享) 并发是指在同一时间段内,能够处理多个任务的能力。为了提升应用的响应速度与帧率,以及防止耗时任务对主线程的干扰,HarmonyOS系统提供了异步并发和多线程并发两种处理策略。指异步代码在执行到一定程度后会被暂停,以便在未来某个时间点继续执行,这种情况下,同一时间只有一段代码在执行。它允许在同一时间段内同时执行多段代码。在主线程继续响应用户操作和更新UI的同时,后台也能执行耗时操作,从而避免应用出现卡顿。并发能力在多种场景中都有应用,其中包括单次I/O任务、CPU密集型任务、I/O密集型任务和同步任务等。
鸿蒙开发——进程模型与进程通信 进程是一个正在执行的程序的实例。当我们启动一个程序时,操作系统会创建一个进程,分配给它所需的资源,如内存和CPU时间。每个进程至少有一个线程,即执行线程,负责执行程序的指令。进程是操作系统进行资源分配和调度的基本单位,是操作系统提供给用户和应用程序的一个抽象概念。在鸿蒙的进程模型中,进程被分为三类:主进程(负责UI的进程)、扩展进程(负责大部分ExtensionAbility)、WebView渲染进程(负责网页渲染的独立进程)。
鸿蒙开发——线程内通信 在介绍鸿蒙开发中线程间通信问题前,我们先解释下什么是线程。在计算机科学中,线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。这么说是不是太抽象了?咱们换成通俗的话来说:假如把一个正在运行的程序想象成一个大工厂。这个工厂在运作的时候,有很多不同的任务要做。线程呢,就像是工厂里的一个的(不同的科室)。每个工人小组(线程)都可以独立地干活,去完成特定的一小部分任务。比如有的工人小组专门负责把原材料搬进工厂,有的专门负责在生产线上组装零件,还有的专门负责把成品打包运出去。
鸿蒙UI系统组件18——模态交互框(ModelDialog) 需要根据场景传入自定义组件填充在弹窗中实现自定义的弹窗内容。下面以AlertDialog、ActionSheet 和 CustomDialog为例说明相应的弹窗效果与使用方法。
鸿蒙UI开发——基于全屏方案实现沉浸式界面 典型应用全屏窗口UI元素包括状态栏、应用界面和底部导航条。其中状态栏和导航条,通常在沉浸式布局下称为避让区,避让区之外的区域称为安全区。开发应用沉浸式效果主要指:通过调整状态栏、应用界面和导航条的显示效果来减少状态栏导航条等系统界面的突兀感,保证应用的整体观感。
鸿蒙文本组件高级特性——富文本属性字符串 属性字符串StyledString/MutableStyledString(MutableStyledString继承于StyledString,以下统一简称StyledString)是功能强大的标记对象,可用于字符或段落级别设置文本样式。通过将StyledString附加到文本组件, 可以通过多种方式更改文本,包括修改字号、添加字体颜色、使文本可点击以及自定义方式绘制文本等。
鸿蒙UI系统组件17——富文本展示(RichText) 👉🏻 组件接口👉🏻 事件👉🏻 属性目前RichText组件只支持width,height,size,layoutWeight四个属性。👉🏻 组件支持渲染的HTML标签被用来定义HTML,定义重要等级最高的标题,定义重要等级最低的标题。定义段落。插入一个简单的换行符。设置规定文本的字体、字体尺寸、字体颜色。
鸿蒙跨设备协同开发08——使用分布式数据对象接续应用 分布式数据对象提供管理基本数据对象的相关能力,包括创建、查询、删除、修改、订阅等;同时支持相同应用多设备间的分布式数据对象协同能力。分布式数据对象由 @ohos.data.distributedDataObject 模块提供能力。// 创建一个分布式数据对象create(context: Context, source: object): DataObject// 随机创建一个sessionIdgenSessionId(): string。
鸿蒙跨设备协同开发05——跨设备拖拽 当用户拥有两台平板设备时,可以共享一套键鼠,通过跨设备拖拽,一步将设备A的素材拖拽到设备B快速创作,实现跨设备的协同工作体验。演示如下:跨端拖拽提供跨设备的键鼠共享能力,支持在平板或2in1类型的任意两台设备之间拖拽文件、文本。当前HarmonyOS系统应用中,文件管理器、浏览器支持拖出;备忘录支持拖入。用户可以体验以下场景:将A设备文件管理器中的图片拖拽至B设备的备忘录应用。将A设备备忘录中的文本拖拽至B设备的备忘录应用,并在B设备中使用A设备连接的键盘输入,协同操作。