
HarmonyOS Next应用开发案例
文章平均质量分 87
HarmonyOS Next应用开发案例,本帖下方集中了HarmonyOS Next应用开发时,会遇到的常见应用案例。后续会持续更新大量案例,帮助开发者快速学习.
青少年编程作品集
肖老师,IT高级软件工程师,从事软件设计与研发20年之久,具备丰富的设计和研发等编程经验。
精通逻辑算法,工程数控,数据分析与挖掘。有4年的金融保险银行数据逻辑算法分析处理工作经验,
有5年的电信移动无线通讯技术3G,4G网优网规相关编程经验,有4年的企业应用软件,工程控制应用软件,互联网应用软件编程经验
还有4年的移动APP,小程序,Web前后端软件编程经验。精通Scratch,Python,C,C++,Java,Javascript,html5,Css3等编程语言,
熟悉各种编程工具,以及编程的流程和编程环境。涉及积木编程,AI人工智能编程,大数据挖掘编程,手机APP和小程序编程。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【鸿蒙系统关键技术方案】--第5课时:应用切面编程设计
切面编程(AOP)是一种通过预编译方式和运行期间动态代理实现程序功能的统一维护的技术。AOP的核心思想是将程序的关注点(concern)分离,通过在程序中插入代码来实现横切关注点(cross-cutting concerns),从而实现对业务逻辑的各个部分进行隔离,降低它们之间的耦合度,提高程序的可维护性和可重用性,同时提高了开发的效率。在AOP中,开发者可以通过定义切面(aspect)来封装横切关注点,而不需要直接修改业务逻辑代码。原创 2024-11-28 08:52:00 · 132 阅读 · 0 评论 -
【鸿蒙系统关键技术方案】--第4课时:应用并发设计
ArkTS是HarmonyOS APP的开发语言,它在保持TypeScript(简称TS)基本语法风格的基础上,一方面规范强化静态检查提升开发者代码的规范性;另一方面基于TypeScript增强了一些特性提升开发体验和执行效率,尤其是在并发能力上的提升。本文档主要面向HarmonyOS APP的设计人员或开发人员,介绍应用在并行任务方案设计过程中,可能会遇到的典型场景以及对应的推荐设计方案,同时给出了方案的关键点及参考案例。原创 2024-11-28 08:50:55 · 112 阅读 · 0 评论 -
【鸿蒙系统关键技术方案】--第3课时:模块化设计
应用开发者需要根据自身技术架构选择适合的工程模块化模型,工程模块化模型也不是一成不变的,需要根据业务和技术架构的演进而演进。根据诉求在HAP、HAR和HSP三种类型中进行选择使用。对于具备独立运行和安装的模块只能选择HAP包,并将其作为Feature类型的HAP存在于App中;对于不具备独立特性部分,用户使用频率较少的模块,将其做成HSP按需加载模块存在于App中。对于需要共享的模块,只能采用HAR包,将其通过OHPM仓共享给其他工程使用。原创 2024-11-28 08:49:43 · 127 阅读 · 0 评论 -
【鸿蒙系统关键技术方案】--第2课时:导航设计实践
大型应用开发中,应用可能包含不同的业务模块,每个模块由不同的业务团队负责开发。该场景采用一个Navigation下多个har/hsp的架构,其中一个模块对应一个har/hsp。当多个har/hsp的UI组件存在相互跳转的业务需求时,将出现模块间相互依赖的问题。图1多har包间路由跳转耦合针对该场景,本文提供了一套基于Navigation的路由设计方案实现多模块路由管理和模块间解耦。并在该基础上,通过动态注册路由的方式,解决页面加载多个UI组件时启动速度变慢问题。原创 2024-11-28 08:46:41 · 74 阅读 · 0 评论 -
【鸿蒙系统关键技术方案】--第1课时:分层模块化实践
HarmonyOS应用的分层架构设计以一套代码工程为基础,旨在为华为的手机、2in1等1+8全场景设备提供支持,实现了“”的开发理念。HarmonyOS应用的分层架构主要包括三个层次:产品定制层、基础特性层和公共能力层,为开发者构建了一个清晰、高效、可扩展的设计架构。本文将从和分别介绍应用分层架构设计规则。原创 2024-11-28 08:45:10 · 199 阅读 · 0 评论 -
【鸿蒙系统APP开发实践案例】--第10课时:孕育健康类行业实践
本设计为孕育健康类HarmonyOS NEXT应用的架构设计实践,应用设备形态为手机端,示例孕育健康类应用常见的孕育健康咨询问答,健康日历记录、消息中心、社交互动圈、发帖编辑、详情页、启动闪屏页以及应用设置等功能。ArkTs声明式UI开发范式。按照应用设备形态,规划手机设备Entry类型HAP包。本实践性能优先,应用程序包大小可控,且无单独加载模块场景,业务模块包类型采用HAR包。原创 2024-11-25 09:19:53 · 142 阅读 · 0 评论 -
【鸿蒙系统APP开发实践案例】--第9课时:教育类行业实践
本设计为教育类HarmonyOS应用架构设计实践,提供教育类应用常见的图文学习、音视频学习、考试等功能。Stage开发模型+声明式UI开发方式。应用设备形态只有手机端,规划一个Entry类型HAP包。APP大小可控,性能优先,无单独加载模块,模块全部采用HAR包。原创 2024-11-25 09:18:36 · 190 阅读 · 0 评论 -
【鸿蒙系统APP开发实践案例】--第8课时:运动健康类行业实践类
本设计为运动健康类HarmonyOS应用架构设计实践,应用提供运动健康类应用常见的首页、运动、发现、商城、我的等应用功能。Stage开发模型+声明式UI开发方式。应用设备形态两种:手机和智慧屏端,规划两个Entry类型HAP包。APP大小可控,性能优先,无单独加载模块,模块全部采用HAR包。原创 2024-11-25 09:17:24 · 131 阅读 · 0 评论 -
【鸿蒙系统APP开发实践案例】--第7课时:便捷生活类行业实践
本实践设计为便捷生活类(一卡通、政务云)HarmonyOS应用架构设计实践,应用主要提供首页、办事、服务大厅、证件、社保、公积金、12345专区、身份码、账户设置等功能。Stage开发模型+声明式UI开发方式。应用只部署在手机端,规划一个Entry类型HAP包。整体采用 单Hap 包 + 多HAR + 多HSP包模式。其中,涉及按需加载、元服务复用的模块建议采用HSP(增加下说明),其它模块使用HAR包模式。原创 2024-11-25 09:16:12 · 160 阅读 · 0 评论 -
【鸿蒙系统APP开发实践案例】--第6课时:汽车类行业实践
本设计为汽车类HarmonyOS应用的架构设计实践,应用设备形态只有手机端,提供汽车类应用常见的汽车类资讯,购车,商城以及充电服务等应用功能。Stage开发模型+声明式UI开发方式。按照应用设备形态,规划一个手机设备Entry类型HAP包。本实践性能优先,应用程序包大小可控,且无单独加载模块场景,业务模块包类型采用HAR包。原创 2024-11-25 09:14:48 · 118 阅读 · 0 评论 -
【鸿蒙系统APP开发实践案例】--第5课时:理财保险类行业实践
本设计为保险类HarmonyOS应用的架构设计实践,应用设备形态只有手机端,提供保险类应用常见的保险商城、保单管理、理赔、车险服务等应用功能。Stage开发模型+声明式UI开发方式。按照应用设备形态,规划一个手机设备Entry类型HAP包。本实践性能优先,应用程序包大小可控,且无单独加载模块场景,业务模块包类型采用HAR包。原创 2024-11-25 09:13:17 · 229 阅读 · 0 评论 -
【鸿蒙系统APP开发实践案例】--第4课时:综合办公类行业实践
本设计为办公类应用APP的鸿蒙化架构设计实践,应用提供办公类应用常见的工作,邮件,通讯录,审批公告等办公功能。Stage开发模型+声明式UI开发方式。应用只部署在手机端,规划一个Entry类型HAP包。性能优先原则,模块全部采用HAR类型。原创 2024-11-25 09:11:37 · 116 阅读 · 0 评论 -
【鸿蒙系统APP开发实践案例】--第3课时:旅游园区类行业实践
本设计为旅游园区类应用APP的鸿蒙化架构设计实践,应用提供专题园区的在线预订门票、酒店、停车、餐饮,园区路线导航,商城以及最新官方资讯的功能。Stage开发模型+声明式UI开发方式。应用设备形态只有手机端,规划一个Entry类型HAP包。APP大小可控,性能优先,无单独加载模块,模块全部采用HAR包。原创 2024-11-25 09:09:10 · 386 阅读 · 0 评论 -
【鸿蒙系统APP开发实践案例】--第2课时:公交地铁类行业实践
本设计为出行导航类应用APP的鸿蒙化架构设计实践,应用提供出行导航类应用常见的乘车码、路线查询、支付管理等应用功能。Stage开发模型+声明式UI开发方式。应用只部署在手机端,规划一个Entry类型HAP包。原创 2024-11-25 09:07:54 · 432 阅读 · 0 评论 -
【鸿蒙系统APP开发实践案例】--第1课时:新闻阅读类行业实践
本设计为新闻日报类应用APP的鸿蒙化架构设计实践,应用设备形态只有手机端,提供新闻日报类应用常见的新闻资讯展示,新闻视频播放,用户评论互动等应用功能。Stage开发模型+声明式UI开发方式。按照应用设备形态,规划一个手机设备Entry类型HAP包。本实践性能优先,应用程序包大小可控,且无单独加载模块场景,业务模块包类型采用HAR包。原创 2024-11-25 09:05:26 · 151 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例140:基于RN框架实现高性能瀑布流页面
本案例针对瀑布流页面场景,基于@react-native-oh-tpl/flash-list、axios等框架,实现了一个高性能的瀑布流页面,该案例提供了关键的开发步骤,旨在帮助开发者高效开发出高性能的瀑布流页面。详情请查看。名称版本号0.72.270.0.26rnoh5.0.0.302及以上5.0.0.302及以上页面:页面渲染最大数≤300页面组件嵌套层数≤30。原创 2024-09-08 09:34:25 · 869 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例139:基于网络的抓包能力
1、点击顶部菜单栏【Help】-->选择【SSL Proxying】,点击【install Charles Root Certificate】安装Charles根证书即可;2)设置caPath(默认使用系统默认路径下CA证书,如默认证书认证失败返回60需要替换为请求域名的服务器证书,项目中设置可参考常见问题Q4)A3:使用为charles证书或系统根证书无法通过https校验 ,需替换为请求的域名证书。A2:需要检查下capath设置证书路径是否可访问、证书文件是否存在。原创 2024-09-08 09:32:18 · 370 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例138:应用打包安装定位定界指导
如果只有打包后的hap文件,通过ide打开hap一般为下图的结构,可以在module.json文件和pack.info找到包管理的配置,用文本编辑器打开resources.index可以找出原工程下resource声明的string.json文件的内容。需要通过签名校验,所以需要在打包阶段对其签名。需要在生成证书请求文件后申请发布证书和Profile文件,在工程签名的地方配置上刚才申请的签名证书,编译构建.app文件后进行上架。如果是测试场景,除了在ide运行安装hap之外,也可以用。原创 2024-09-08 09:30:48 · 248 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例137:如何定位解决焦点问题
API 11之前,未配置defaultFocus属性的情况下,当页面首次打开时,原先默认第一个可获焦的非容器组件会立即获取焦点。比如:页面初次构建完成时,使TextInput默认获取焦点,但不希望弹出键盘,则可以设置enableKeyboardOnfocus为false。defaultFocus:设置当前组件是否为当前页面上的默认焦点,仅在初次创建的页面第一次进入时生效。是获焦的能力,不一定当前焦点就在设置的组件上。一个节点获焦了,说的是它所在的焦点链获焦,也就是它和它的祖先节点都会触发onFocus。原创 2024-09-08 09:26:58 · 130 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例136:基于网络的VPN连接实现
使用过程中外网的用户可以使用 vpn client 连接组织搭建的 vpn server 以建立通信隧道,随后便建立了虚拟的私人网络,处于外网的 worker 和内网中的 server 可以相互通信。如首次添加"type": "vpn"时报红,“ctrl+左键”点击"type",在"enum"中添加“vpn”参数,1、建立vpn_client.cpp文件,写入vpn隧道通信启动、停止有关能力。1、建立vpn_client.cpp文件,写入vpn隧道通信有关能力。2、NDK添加可导出配置的使用接口能力。原创 2024-09-08 09:24:46 · 1455 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例135:基于class-transformer的对象与JSON相互转换
我们在前端处理后端传送过来的数据时,经过反序列化转换的对象全是plain(literal) object(普通(字面量)对象),如下,这里我们手动写一个待转换成特定对象的 JavaScript对象(JSON形式)。如果是传入的字符串我们需要搭配JSON.parse来使用,将字符串转化成JSON格式的UserJson对象,使用plainToInstance来进行转换,由于使用了@Exclude()注解。此外,建议审视设计的类和json是否合理,尽量避免使用复杂的转换。原创 2024-09-08 09:22:34 · 275 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例134:基于imageKnife对gif图的管理
实例化ImageKnifeOption后,先实例化网络请求new RequestOption(),load加载gif链接,添加监听属性addListener,回调返回拿到对象的width,height,delay。因为gif动图本质是一个播放,所以将每次拿到的帧数相加可以得到总帧数(max),经过for循环找到循环的次数maxtimes,再用总帧数除以次数得到每秒帧率avg。实例化ImageKnifeOption后,添加gif属性,将字段playTime设置传入播放的次数,即可完成播放次数的控制。原创 2024-09-08 09:18:27 · 201 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例133:基于分布式数据对象的跨设备数据同步
若A设备将数据save到B设备,B设备创建分布式对象时会自动恢复数据,此时A设备revokesave无法撤销B设备已回复的数据。A、B两条设备组网后,A设备开启监听后(on("change")),B设备修改数据,随后A设备读取数据,此时读取到的是B设备修改后的数据。通过save("local")将对象数据保存成功后,当应用存在时不会释放对象数据,当应用退出后,重新进入应用时,恢复保存在设备上的数据。A、B两台设备分别点击创建分布式数据对象,并开启数据变更监听,此时在A设备输入数据,B设备即可自动同步。原创 2024-09-08 09:15:43 · 338 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例132:基于手势的图片预览与缩放
1、使用组合手势GestureGroup,同时绑定捏合手势PinchGesture和滑动手势PanGesture,设置组合手势识别模式为并行识别模式:Parallel,并行识别组合手势中注册的手势将同时进行识别,直到所有手势识别结束,并行识别手势组合中的手势进行识别时互不影响。2、在onTouch事件中识别手指滑动方向,并判断边界是翻页还是拖动,方向为左右且到达边界,执行scaleUnEnable方法,将panGesture手势方向置为none,执行翻页;反之执行滑动手势,不翻页。原创 2024-09-08 09:12:59 · 188 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例131:基于Slider的滑动条
底层Progress进度条的填充色充当视频进度条的缓冲色,Progress的背景色充当视频进度条的背景色;下图主要表达的是拓展了Slider滑动手势的响应范围,红色区域就是原始的Slider响应去,上下橙色和粉色区域都是拓展的手势响应区。效果中的红色区域是Slider原始的可触摸区域,增大的橙色和粉色区主要思路是通过responseRegion这个全局属性来增大触摸热区,然后通过给热区设置平移手势来控制Slider的value来进而控制Slider的滑动,是一个类似视频软件拖动进度条的场景。原创 2024-09-08 09:10:23 · 345 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例130:基于TextInput的常见自定义效果解决方案
通过状态变量动态改变图标样式,然后给输入框设置不显示默认的密码图标 .showPasswordIcon(false),图标动态切换接合密码的显隐状态.showPassword(this.changeState)来达到自定义密码图标的效果。当输入框输入文字时,右侧显示删除清空内容按钮,主要利用textInput属性cancelButton,该属性设置右侧清除按钮样式,不支持内联模式。输入框未获焦时热搜词自动滚动,输入框获焦时输入框热搜词暂停滚动,热搜词文字到输入框右侧时文字内容会渐变显示。原创 2024-09-07 12:34:52 · 243 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例129:基于状态变量实现复杂对象的状态监听
在上面数据模型中,Class User的字段bag是Class Bag类型,Class Book的字段bookName是Class BookName类型,这种情况都是一个对象的字段中还含有一个对象,这一类数据我们叫复杂对象,这类数据在使用状态变量监听的时候会比较麻烦,@State/@Prop等修饰器只能监听一层,也就是对象下的基本数据类型字段,对于多次嵌套的对象,在深度监听的时候需要用@Observed/@ObjectLink装饰器来进行深度观测,请看下面实现;但当对对象整体赋值时,UI却无法刷新。原创 2024-09-07 12:33:21 · 335 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例128:基于@ohos.util.stream的web离线缓存文件加载
通过fs.createStreamSync创建一个文件流this.stream,在doRead方法中使用this.stream.read (注:文件流的read方法,不是可读流readStream的read 方法) 从文件流中读取文件的内容,最后使用ReadStream的push方法将this.stream.read读取的数据推送到可读流缓冲区中。是一种用于处理数据的抽象接口,适合处理大量数据或连续的数据流,提供了丰富的事件和方法,用于对数据进行流式处理和操作。是既可读又可写的流。通过流读取文件里的资源。原创 2024-09-07 12:31:19 · 246 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例127:弱引用在HarmonyOS上的使用
用WeakRef创建对象的弱引用,支持在需要时获取原始对象,必须在对象仍然存在时才能获取,如果被回收需要重新创建,一般采用WeakRef的deref()方法获取原始对象。由于WeakRef不能检测对象何时被垃圾回收,没有提供与垃圾回收事件关联的回调机制,所以只能通过主动轮询的方式定期检查对象是否已经被回收。由于使用了WeakRef弱引用,只要没有其他强引用指向这个两个对象,它们就可以被垃圾回收,只要有一方使用弱引用,即可解除两者的循环引用。开发者需要依靠弱引用解决垃圾回收相关的内存管理问题。原创 2024-09-07 12:29:49 · 143 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例126:HarmonyOS原生应用占用空间管理
A:fs.rmdir是递归删除,会删除该文件夹以及子文件夹中的所有文件,但是当其子目录中有高权限的文件时,调用的接口无法删除此文件,导致无法删除此文件夹,报错:Directory not empty。例如:app级别,加密类型为el1的缓存会保存到/data/storage/el1/base/cache目录下。使用Grid将图片排列展示,并通过bindContextMenu给image组件绑定菜单,长按拉起删除选择框,并实时展示删除后剩余图片。定义长按手势,可以通过长按图片拉起菜单,选择删除指定图片。原创 2024-09-07 12:28:28 · 230 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例125:基于AVPlayer音频后台播放
在多个音频流同时播放场景下,如果系统不加管控,会造成多个音频流混音播放,容易让用户感到嘈杂,造成不好的用户体验。)策略,对多音频播放的并发进行管控。为满足应用对多音频并发策略的不同需求,音频打断策略预设了两种焦点模式,针对同一应用创建的多个音频流,应用可通过设置。音乐播放是媒体最重要的组成之一,以下是AVPlayer将Audio媒体资源(比如mp3等)转码为可听见的音频模拟信号,并通过输出设备进行播放。定义,不同的类型代表了不同场景的控制能力,对于播控中心来说,会展示不同的控制模版。原创 2024-09-07 12:26:36 · 364 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例124:基于UI Observer实现UI组件埋点
在页面中使用,需要注意的在下面代码中按钮上的id属性为可选配置项,主要目的是用于标识具体点击的是哪个组件,自己定义的id更明显,如不想每一个组件都配置,可以使用FrameNode.getUniqueId接口获取系统分配的ID也可以。ps:当前实现的监听是页面中任何一个滚动组件List、Scroll等只要触发了滚动都该监听都能识别到,并且可以在回调的info中拿到滚动容器组件的ID,如需要精准监听对应的滚动组件可以参考。页面中注册,页面中注册的时候传递自己的处理逻辑,获取页面跳转时间统计页面停留时长。原创 2024-09-07 12:24:42 · 229 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例123:基于Picker的受限权限适配方案
注意不能在picker的回调里直接使用此uri进行打开文件操作,需要定义一个全局变量保存uri,使用类似一个按钮去触发打开文件。最后再将通过fs.read读取到selecturi的音频文件的buffer,再通过fd使用fs.writeSync接口将buffer写入这个音频文件,编辑修改完成后关闭fd。Picker由系统独立进程实现,应用可以通过拉起Picker组件,用户在Picker上选择对应的资源(如图片、文档等),应用可以获取Picker返回的结果。原创 2024-09-07 12:23:05 · 168 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例122:应用内的生命周期流转
UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改变,会经过UIAbility实例的创建和销毁,或者UIAbility实例发生了前后台的状态切换。自定义组件的生命周期回调函数用于通知用户该自定义组件的生命周期,这些回调函数是私有的,在运行时由开发框架在特定的时间进行调用,不能从应用程序中手动调用这些回调函数。场景:某些场景下需要使用消息的发布订阅模式去实现业务功能,发布消息,订阅消息,改变页面。UIAbility组件生命周期。触发API与调用时机。原创 2024-09-07 12:21:22 · 228 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例121:基于原生能力的组件封装
在应用开发中,我们通常需要使用相同功能和样式的ArkUI组件,例如购物页面中会使用相同样式的Button按钮、Text显示文字,我们常用的方法是抽取公共样式或者封装成一个自定义组件到公共组件库中以减少冗余代码。自定义class实现Row组件的AttributeModifier接口,通过传入instance参数类型RowAttribute识别组件为Row类型,基于instance设置属性值,Row组件的该属性即生效。为了解决这个问题,基于原生能力的组件封装,将使我们更高效地开发应用程序。原创 2024-09-07 12:18:37 · 195 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例120:基于原生的应用主题开发
可以通过WithTheme可以设置深浅色模式,ThemeColorMode.SYSTEM模式表示跟随系统模式,ThemeColorMode.LIGHT模式表示浅色模式,ThemeColorMode.DARK模式表示深色模式。CustomTheme的属性是可选的,只需要复写需要的修改的部分,其余部分会继承自系统。场景一和场景二的区别在哪里?在WithTheme作用域内,组件的样式资源取值跟随指定的模式读取对应的深浅色模式系统和应用资源值,WithTheme作用域内的组件配色跟随指定的深浅模式生效。原创 2024-09-05 11:31:18 · 229 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例119:基于滚动组件的手势处理
在ListItem组件上绑定滑动手势,在滑动手势onActionUpdate事件里控制ListItem的属性offset的参数x的值,在onActionEnd事件里判断当前左滑的偏移量控制是否拉出删除按钮,最后给ListItem绑定点击事件,使用animateTo展开删除按钮。原创 2024-09-05 11:30:13 · 115 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例118:高级图表实现解决方案
定义好自己的数据类之后,就要定义MyRender类了,实线具体的绘制功能,MyRender类继承自LineChartRenderer,因为是要绘制曲线,所以重写的是drawCubicBezier方法,MyRender类的代码。就是调用path2D的方法bezierCurveTo方法,这个方法有6个参数,分别是控制点1的(x值,y值 )和 控制点2的(x值,y值)以及目标点的(x值,y值)。直接把父类的方法抄过来即可。aboutToAppear定义x/y轴的外层图表时,x轴只用定义一次,Y轴根据业务来。原创 2024-09-05 11:29:02 · 190 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例117:基于原生能力实现图文混排
参与相对布局的容器内组件必须设置id,不设置id的组件组件不显示,容器id固定为__container__。使用StyledString实现图文混排效果,首先得让Text组件与StyledString绑定,绑定后即可使用StyledString设置文本样式以及对文本进行增、删、改、查等操作。应用中基于原生能力实现图文混排效果有多个方案可实现,推荐使用Flex作父容器实现的方案(方案一),此方案优点在于节点数量少,结构简单。内部头像使用Image组件,中间部分使用Text文本组件,右边使用Text文本组件。原创 2024-09-05 11:27:24 · 199 阅读 · 0 评论 -
【HarmonyOS NEXT应用开发】案例116:基于ArkUI实现类似.9图的拉伸能力
文档提供的图片,在设置了top、right、bottom、left四个参数后,图上的4角也就是1234区域不会被拉伸,关键点在于这4个参数的大小必须是原图的基础上的大小,所以需要将原图像素值转为vp后,在此基础上来确认参数。1.给Text设置背景图并将backgroundImageSize宽高都设置为100%,再使用backgroundImageResizable限定背景图拉伸区域。分别使用backgroundImageResizable和resizable实现聊天气泡的拉伸。原创 2024-09-05 11:25:50 · 84 阅读 · 0 评论