【鸿蒙实战开发】基于原生实现高级显示效果

【鸿蒙实战开发】har和hsp的转换 2.(可选)当Hsp需要对外声明router可跳转的page时,需要添加module.json5的"pages"字段,并在resources/base目录下建立profile/main_pages.json文件,添加配置参考如下,并在对应位置添加页面。4.har包的build-profile.json5默认会有"consumerFiles": ‘./consumer-rules.txt’ ,该项仅har模块可配置,为默认导出的混淆规则(详细描述见: 代码混淆 ),需将其删除。6.三方应用调用管控机制。 阅读详情

往期知识点整理

场景描述

文字特效是一个比较常见的功能,下面列举一些遇到的业务需求:

  • 场景一:文字渐变效果

  • 场景二:歌词滚动效果

  • 场景三:文字倒影效果

  • 场景四:跑马灯渐变效果

方案描述

场景一:

文字渐变效果

效果图

方案

使用linearGradient与blendMode结合实现文字渐变效果

核心代码


Row() {

Text(this.message)

.fontSize(42)

.fontWeight(FontWeight.Bold)

.blendMode(BlendMode.DST_IN, BlendApplyType.OFFSCREEN)

}.linearGradient({

direction: GradientDirection.Right,

colors: [["#f97794", 0.0], ["#623aa2", 1]]

})

.blendMode(BlendMode.SRC_OVER, BlendApplyType.OFFSCREEN)

场景二:

歌词滚动效果

效果图

方案

使用linearGradient与blendMode结合实现文字渐变效果,在结合动画来实现滚动的效果。

核心代码


Row() {

Text(this.message)

.fontSize(32)

.fontColor(Color.Black)

.fontWeight(FontWeight.Bold)

.blendMode(BlendMode.DST_IN, BlendApplyType.OFFSCREEN)

}.linearGradient({

direction: GradientDirection.Right,

colors: [[0xff0000, 0.0], [0xff0000, this.value], [0x000000, this.value], [0x000000, 1.0]]

}).blendMode(BlendMode.SRC_OVER, BlendApplyType.OFFSCREEN)

.backgroundImageSize({ width: 0, height: 0 })

.onAppear(() => {

animateTo({

duration: 5000,

finishCallbackType: FinishCallbackType.LOGICALLY,

curve: Curve.Linear,

iterations: -1,

onFinish: () => {

this.value = 0

}

}, () => {

this.value = 1

})

})

场景三:

文字倒影效果

效果图

方案

鸿蒙没有直接设置文字倒影的API,我们可以使用Stack将两个一样的元素叠在一起,将底层的元素沿着X轴翻转180度即可达到倒影效果,具体代码如下所示:

核心代码


Stack()

Text("好好学习 天天向上").fontSize(24).fontColor(Color.Red)

Text("好好学习 天天向上").fontSize(24).fontColor(Color.Red)

.rotate({

x: 1,

y: 0,

z: 0,

angle: "180deg",

centerX: "50%",

centerY: "100%"

})

.linearGradientBlur(60, {

fractionStops: [[0, 0], [1, 1]],

direction: GradientDirection.Bottom

})

}

场景四:

跑马灯渐变效果

效果图

方案与核心代码

文字跑马灯实现有两种方案:

方案一: 使用Marquee组件实现文本跑马灯效果

这种方案实现的跑马灯效果能力更强,可塑性更强,但是注意使用Marquee组件试下的时候不宜在页面中使用过多,该组件存在一定的性能问题,不建议在一个页面中使用超过四个。


Row() {

Column() {

Marquee({

start: this.start,

step: this.step,

loop: this.loop,

fromStart: this.fromStart,

src: this.src

})

.overlay('两边透明渐变', {

align: Alignment.Bottom,

offset: { x: 0, y: -35 }

})

.width('90%')

.fontColor('#000000')

.fontSize(30)

.fontWeight(700)

}

.blendMode(BlendMode.SRC_IN, BlendApplyType.OFFSCREEN)

.backgroundColor(Color.Transparent)

.width('100%')

}

.width('100%')

.linearGradient({

angle: 90,

// rgba(0, 0, 0, 0) 表示一种完全透明的颜色,其中最后一个参数 alpha(透明度)值为 0,表示该颜色是完全透明的

colors: [['rgba(0, 0, 0, 0)', 0], ['rgba(0, 0, 0, 1)', 0.2], ['rgba(0, 0, 0, 1)', 0.8], ['rgba(0, 0, 0, 0)', 1]]

})

.blendMode(BlendMode.SRC_OVER, BlendApplyType.OFFSCREEN)

方案二: 使用textOverlay属性实现跑马灯效果

这种方案实现的跑马灯效果没有性能问题,但是没有Marquee那样提供了各种回调,如果没有复杂的效果并且需要在页面中大量使用的时候建议使用这一种。


Row() {

Column() {

Text(this.src)

.width('90%')

.fontColor('#000000')

.fontSize(30)

.fontWeight(700)

.textOverflow({ overflow: TextOverflow.MARQUEE })

}

.blendMode(BlendMode.SRC_IN, BlendApplyType.OFFSCREEN)

.backgroundColor(Color.Transparent)

.width('100%')

}

.width('100%')

.linearGradient({

angle: 90,

// rgba(0, 0, 0, 0) 表示一种完全透明的颜色,其中最后一个参数 alpha(透明度)值为 0,表示该颜色是完全透明的

colors: [['rgba(0, 0, 0, 0)', 0], ['rgba(0, 0, 0, 1)', 0.2], ['rgba(0, 0, 0, 1)', 0.8], ['rgba(0, 0, 0, 0)', 1]]

})

.blendMode(BlendMode.SRC_OVER, BlendApplyType.OFFSCREEN)

总是有很多小伙伴反馈说:鸿蒙开发不知道学习哪些技术?不知道需要重点掌握哪些鸿蒙开发知识点? 为了解决大家这些学习烦恼。在这准备了一份很实用的鸿蒙全栈开发学习路线与学习文档给大家用来跟着学习。

针对一些列因素,整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线,包含了鸿蒙开发必掌握的核心知识要点,内容有(OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony驱动开发、系统定制移植……等)技术知识点。

《鸿蒙 (Harmony OS)开发学习手册》(共计892页):https://gitcode.com/HarmonyOS_MN/733GH/overview

如何快速入门?

1.基本概念
2.构建第一个ArkTS应用
3.……

开发基础知识:

1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
9.……

在这里插入图片描述

基于ArkTS 开发

1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16.……

在这里插入图片描述

鸿蒙开发面试真题(含参考答案):https://gitcode.com/HarmonyOS_MN/733GH/overview

在这里插入图片描述

OpenHarmony 开发环境搭建

图片

《OpenHarmony源码解析》:https://gitcode.com/HarmonyOS_MN/733GH/overview

  • 搭建开发环境
  • Windows 开发环境的搭建
  • Ubuntu 开发环境搭建
  • Linux 与 Windows 之间的文件共享
  • ……
  • 系统架构分析
  • 构建子系统
  • 启动流程
  • 子系统
  • 分布式任务调度子系统
  • 分布式通信子系统
  • 驱动子系统
  • ……

图片

OpenHarmony 设备开发学习手册:https://gitcode.com/HarmonyOS_MN/733GH/overview

图片

HarmonyOS Next开发学习手册——粒子动画 粒子动画 是在一定范围内随机生成的大量粒子产生运动而组成的动画。动画元素是一个个粒子,这些粒子可以是圆点、图片。开发者可以通过对粒子在颜色、透明度、大小、速度、加速度、自旋角度等维度变化做动画,来营造一种氛围感,比如下雪的动效,雪花飘舞就相当于一个个雪花粒子在做动画。粒子动画的效果通过Particle组件展现。基本示例代码和效果如下。 阅读详情

相关推荐

鸿蒙(HarmonyOS)实战开发篇——基于原生实现高级显示效果

这种方案实现的跑马灯效果能力更强,可塑性更强,但是注意使用Marquee组件试下的时候不宜在页面中使用过多,该组件存在一定的性能问题,不建议在一个页面中使用超过四个。这种方案实现的跑马灯效果没有性能问题,但是没有Marquee那样提供了各种回调,如果没有复杂的效果并且需要在页面中大量使用的时候建议使用这一种。使用linearGradient与blendMode结合实现文字渐变效果,在结合动画来实现滚动的效果。

lc748258的博客 1020

【HarmonyOS开发】共享包HAR和HSP的创建和使用以及三方库的发布

OpenHarmony提供了两种共享包,HAR(Harmony Archive)静态共享包,和HSP(Harmony Shared Package)动态共享包。HAR与HSP都是为了实现代码和资源的共享,都可以包含代码、C++库、资源和配置文件,最大的不同之处在于:HAR中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝;而HSP中的代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份。

qq_23334071的博客 5742

HarmonyOS鸿蒙开发:文字特效高级显示效果场景

使用linearGradient与blendMode结合实现文字渐变效果

2401_84917132的博客 1461

【鸿蒙 - 开发】OpenHarmony开发入门知识

共享包的理解:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/shared-guide.mdHAR的理解:zh-cn/application-dev/quick-start/har-package.md · OpenHarmony/docs - Gitee.comHSP的理解:zh-cn/application-dev/quick-start/in-app-hsp.md · OpenHarmon

weixin_45484755的博客 627

【鸿蒙实战开发】HarmonyOS对各种图片编解码格式的支持

ARCH代表构建架构,64位为arm64-v8a,32位为armeabi-v7a。实现方式参考上述heif格式,策略相通均为C++侧读取图片数据转换为pixelMap返回给TS侧。在lycium目录下会生成usr目录,该目录下存在已编译完成的32位和64位三方库和头文件。2.1 将libavif库添加到工程中,参考链接: libavif三方库说明。三方库的测试使用原库自带的测试用例来做测试, 准备三方库测试环境。10.后台任务(Background Task)管理。编译环境的搭建参考 准备三方库构建环境。

CTrup的博客 1397

鸿蒙HarmonyOS NEXT实战开发:验证码布局实现案例

本示例介绍如何使用Text组件实现验证码场景,并禁用对内容的选中、复制、光标。

wanghuaQAQ的博客 1090

鸿蒙HarmonyOS中的HAR与HSP文件详解

在HarmonyOS开发中,HAR与HSP文件是两个非常重要的概念,它们对开发者在模块化开发、组件重用以及分布式应用的管理和分发上提供了极大的便利。本文将详细介绍HAR(HarmonyOS Ability Resource)和HSP(HarmonyOS Service Package)的定义、使用场景以及它们在应用开发中的作用。HAR 是 HarmonyOS 中的模块资源包,其全称是 HarmonyOS Ability Resource。

小北的博客 4185

HarmonyOS NEXT开发实战:使用弹簧曲线实现抖动动画及手机振动效果案例

本示例介绍使用vibrator.startVibration方法实现手机振动效果........

m0_72493819的博客 1208

解锁HarmonyOS赋能套件全景视频课程,开启鸿蒙开发新征程

通过课程中的实战项目和 Codelab 编程练习,他的实践能力得到了极大的锻炼。对于零基础的开发者,课程精心设置了入门课程,从鸿蒙系统的起源、架构特点、开发环境搭建等基础知识讲起,用通俗易懂的语言和生动形象的示例,帮助开发者快速建立起对鸿蒙开发的初步认知,消除对新技术的陌生感和畏难情绪。一方面,鸿蒙开发所采用的技术体系与传统开发存在显著差异,像 ArkTS 语言、分布式架构等,这些全新的技术概念和开发方式,要求开发者摒弃旧有的思维模式,重新学习和掌握一套全新的知识体系,无疑极大地增加了学习的难度和成本。

大雨淅淅的博客 1006

鸿蒙HarmonyOS NEXT实战开发:状态栏显隐变化实现案例

本示例介绍使用Scroll组件的滚动事件onScroll实现状态栏显隐变化

wanghuaQAQ的博客 1091

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:悬浮态效果)

ArkTS声明式开发(通用属性:悬浮态效果)

m0_64420071的博客 1854

鸿蒙5.0实战案例:基于原生实现高级显示效果

这种方案实现的跑马灯效果能力更强,可塑性更强,但是注意使用Marquee组件试下的时候不宜在页面中使用过多,该组件存在一定的性能问题,不建议在一个页面中使用超过四个。这种方案实现的跑马灯效果没有性能问题,但是没有Marquee那样提供了各种回调,如果没有复杂的效果并且需要在页面中大量使用的时候建议使用这一种。使用linearGradient与blendMode结合实现文字渐变效果,在结合动画来实现滚动的效果。使用linearGradient与blendMode结合实现文字渐变效果。

Maniu_666的博客 687

[Ethernet in CANoe]2--如何在CANoe中去仿真CP版本的SOME/IP通信

上篇文章()介绍了SOME/IP的两种类型的数据格式,根据作者目前的项目经验,目前在CANoe V18之前的版本,CP版本的arxml是最方便实现SOME/IP以太网仿真的。作者目前只有CANoe V17的license,所以本片文章是在CANoe 17上基于CP版本的arxml去做仿真模拟。

汽车ECU自动化测试 1764

鸿蒙开发进阶(HarmonyOS)原生实现高级显示效果

文字特效是一个比较常见的功能,下面列举一些遇到的业务需求

adaedwa187545的博客 491

rk3576之imx415 4k@60fps

1;0;1;0;1;0;1;0;1;0;1;0;1;0;

darennet的专栏 705

可信数据空间:可信空间、区域功能节点、业务功能节点、连接器的关联关系

可信数据空间通过分层架构实现安全数据共享:可信空间作为顶层制定全局规则;区域功能节点协调辖区内功能节点协作;功能节点提供具体数据服务;连接器作为唯一通信通道确保安全交互。系统采用"规则自上而下约束,数据自下而上流动"机制,通过分层治理和标准化连接,在保证数据主权的同时实现跨域协作,具有策略分级执行、去中心化治理等特性,支持灵活扩展业务场景。

友莘居士的博客 1686

0 基础入门鸿蒙:跟着《HarmonyOS 第一课》1 周掌握应用开发核心能力

这篇文章介绍了《HarmonyOS 第一课》课程的完整学习路径和体验感受,适合零基础开发者入门鸿蒙开发。主要内容包括: 课程分为基础、中级、高级三阶段,共24门课,涵盖从环境搭建到应用上架的全流程 基础阶段学习ArkTS语言和ArkUI框架,中级阶段掌握复杂功能开发,高级阶段学习跨设备协同等鸿蒙特色能力 课程优势:全链路覆盖、80%实战内容、紧跟鸿蒙最新特性,并提供配套资源和答疑支持 给零基础学习者的建议:保持每天1-2小时学习节奏,边学边改代码,善用调试工具解决问题 文章通过作者亲身体验,展示了如何从零开

科技改变人类,技术成就未来 3万+

【Claude Code】Claude Code 使用指南

本文介绍了AI编码助手Claude的基础和进阶操作指南。基础部分涵盖启动命令、模式切换(自动编辑/Plan/Yolo模式)、资源监控等核心功能,重点讲解了斜杠命令的使用方法。进阶操作详细说明了CLAUDE.md文件的创建与管理,包括项目规范、代码风格等内容的配置,以及如何通过该文件建立持久上下文。同时提醒了使用过程中的安全风险,建议通过配置文件限制AI对关键代码的访问权限。全文提供了完整的操作指引和安全建议,帮助开发者高效安全地使用Claude进行编码辅助。

大家好,我是敖云岚,一个沉迷代码的 “技术玩家”。擅长 Java、C++ 开发,对 MySQL、Redis、RabbitMQ 等技术也颇有研究。博客里既有硬核技术干货,也有诙谐幽默的编程日常分享。愿和你一起,笑着学技术,快乐敲代码! 1万+

突发!鸿蒙系统即将全面替代安卓?_鸿蒙next(3),HarmonyOS鸿蒙驱动开发实时性

鸿蒙是继 Android、 iOS之后又一股不可忽视的势力。随着移动终端产品的多样化发展,产品的开发与技术的开发与创新已经是一个重要的课题。伴随着科技的发展和创新,使用者的使用经验会越来越丰富,移动操作系统的发展也会越来越丰富。而在越来越多国内技术公司的参与下,鸿蒙体系的不断发展与完善,必然会给这个产业带来全新的生机。最后,有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(Harmony NEXT)资料。

2401_83621784的博客 1080

100个Python代码大全:学完这篇从Python小白到架构师

Python是一种广泛使用的高级编程语言,以其简洁优雅、易于学习和强大的库而闻名。无论你是一位经验丰富的程序员还是初学者,都可以从这种语言的丰富资源中受益。在本篇博客中,我将分享100个实用的Python代码示例,旨在帮助你掌握Python编程,并在日常工作中提高效率。

penggerhe的博客 1万+

2023华为od机试C卷【最富裕的小家庭】Java&Go 实现

在一颗树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为个小家庭。现给你一颗树,请计算出最富裕的小家庭的财富和。

MISAYAONE的博客 1903
上一篇: 【鸿蒙实战开发】基于HAR的跨模块C++头文件引用
下一篇: 【鸿蒙实战开发】基于动态配置签名的多人协同开发应用签名解决方案
普通网友
博客等级 码龄2年 7013粉丝 723原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值