当前位置: 首页 > article >正文

鸿蒙中的自定义绘制效果(一)

一、场景场景说明ArkUI组件可直接绘制想要的元素或效果但有局限性自定义图形有些自定义图形或效果无法用ArkUI组件满足Drawing实现灵活的自定义绘制效果Drawing vs ArkUI组件对比项ArkUI组件Drawing使用方式直接使用组件需自定义绘制灵活性有限高上屏显示直接上屏需依靠其他模块显示二、绘制能力范围及实现流程ArkGraphics 2D基于2D图像渲染引擎提供三大核心能力能力说明画布操作裁剪、旋转、缩放等绘制效果画刷Brush、画笔Pen实现填充和描边图元绘制基础图元的绘制矩形、圆形、路径等图形绘制的过程与实际作画的过程相似主要分为4个步骤步骤1创建画布必选 ↓ 步骤2进行画布操作可选 ↓ 步骤3设置绘制效果可选 ↓ 步骤4绘制图元必选各步骤详解步骤名称必选说明1创建画布必选图形绘制的承载最基本最关键的步骤2画布操作可选裁剪、旋转、缩放等操作3绘制效果可选画刷(Brush)填充内部区域画笔(Pen)描边轮廓4绘制图元必选绘制基础图元矩形、圆形、路径等说明不论多么复杂的图形都是基础图元的不同组合。三、显示绘制结果基于画布完成绘制后还需要将绘制结果上屏显示才能完整实现屏幕上可见的图形UI内容。两种显示方式方式语言说明RenderNodeArkTS通过RenderNode获取Canvas绘制结果由RenderNode上屏显示XComponentC/C创建Canvas绘制将结果拷贝到buffer由XComponent上屏显示四、与Canvas画布组件的关系Canvas组件也具有自绘制的能力目前有两套APIAPI说明CanvasRenderingContext2D按照W3C标准封装可快速复用Web应用绘制逻辑OffscreenCanvasRenderingContext2D离屏Canvas绘制DrawingRenderingContext另一套绘制API两套API的适用场景API适用场景CanvasRenderingContext2DWeb应用和游戏、快速原型设计、数据可视化、在线绘图板、教学工具、创意应用等Native Drawing专业图形处理软件、桌面或移动应用等对性能要求较高的场景性能对比对比项Canvas组件Native Drawing Canvas绘制能力本质相同本质相同性能可能存在卡顿、掉帧性能更优硬件接近性较低更高适用场景通用场景高性能、复杂绘制场景说明Canvas组件的底层也使用了Native Drawing接口来实现绘制功能在绘制能力上两者没有本质的区别。但因为多层封装的实现过程使得Canvas组件在硬件接近性方面不如Native Drawing Canvas。五、其他限制项说明单位图形绘制过程中使用的单位为像素px鸿蒙图形绘制通过ArkGraphics 2D提供画布操作、绘制效果、图元绘制三大能力流程为创建画布→画布操作→设置绘制效果→绘制图元绘制结果可通过RenderNodeArkTS或XComponentC/C上屏显示Canvas组件底层使用Native Drawing但多层封装可能影响性能高性能场景推荐直接使用Native Drawing Canvas。

相关文章:

鸿蒙中的自定义绘制效果(一)

一、场景场景说明ArkUI组件可直接绘制想要的元素或效果,但有局限性自定义图形有些自定义图形或效果无法用ArkUI组件满足Drawing实现灵活的自定义绘制效果Drawing vs ArkUI组件对比项ArkUI组件Drawing使用方式直接使用组件需自定义绘制灵活性有限高上屏显示直接上屏需…...

GitHub汉化插件终极指南:如何轻松搞定GitHub界面全面中文化

GitHub汉化插件终极指南:如何轻松搞定GitHub界面全面中文化 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 还在为英文Git…...

PTA 编程题(C语言)-- 字符串中字符的最大下标查找技巧

1. 理解题目需求与核心逻辑 先来看这道PTA编程题的基本要求:我们需要从用户输入的两行内容中,第一行读取一个待查找的字符,第二行读取一个字符串,然后在字符串中查找该字符出现的最大下标。这个需求看似简单,但实际编码…...

应届生必看:Offer选择指南

文章目录前言一、Offer选择前,先搞懂2026应届生求职市场真相1.1 AI岗位爆发,人才缺口持续扩大1.2 企业分层明显,不同类型Offer差异巨大1.3 应届生求职核心误区:只看纸面薪资二、核心决策维度:选Offer必须盯紧这6点2.1 …...

RWKV7-1.5B-G1A企业级Java应用集成实战

RWKV7-1.5B-G1A企业级Java应用集成实战 1. 引言:当大模型遇上企业级Java架构 最近在帮一家电商平台做智能客服升级时,遇到了个有趣的需求:如何把RWKV7这样的前沿大模型无缝集成到他们的Spring Cloud微服务体系中。这让我意识到,…...

如何5分钟上手免费音频标注工具:Audio Annotator完整使用指南

如何5分钟上手免费音频标注工具:Audio Annotator完整使用指南 【免费下载链接】audio-annotator A JavaScript interface for annotating and labeling audio files. 项目地址: https://gitcode.com/gh_mirrors/au/audio-annotator Audio Annotator是一款基于…...

MySQL InnoDB 内部架构详解

MySQL作为最流行的开源关系型数据库,其InnoDB存储引擎凭借事务支持、行级锁等特性成为企业级应用的首选。本文将深入解析InnoDB的核心架构设计,揭开其高性能与高可靠背后的实现奥秘。内存结构与缓冲机制InnoDB通过精巧的内存设计提升性能。缓冲池(Buffer…...

别再用老方法了!STM32CubeMX V6.x 保姆级配置流程,从选型到生成代码一气呵成

STM32CubeMX V6.x 高效开发指南:从零构建现代化嵌入式工程 第一次接触STM32CubeMX时,我还在用寄存器手动配置GPIO。当看到同事在十分钟内完成了一个带FreeRTOS和三个串口的项目框架时,那种震撼至今难忘。如今,CubeMX已经成为STM32…...

从TSDK到温度矩阵:大疆热红外图像解析实战

1. 大疆热红外图像处理基础 大疆H20系列无人机搭载的热成像相机能够拍摄JPG格式的红外图像,但这些图像并非普通的可见光照片,而是包含了丰富的温度信息。要真正利用这些数据,我们需要理解几个关键概念: 首先,热红外图像…...

Gemma 3-12b-it多模态能力展示:同一模型完成图像问答+文本摘要+逻辑推理

Gemma 3-12b-it多模态能力展示:同一模型完成图像问答文本摘要逻辑推理 1. 模型简介与核心能力 Gemma 3-12b-it是Google推出的轻量级多模态模型,基于与Gemini模型相同的研究技术构建。这个模型最大的特点是能够同时处理文本和图像输入,并生成…...

SAP系统运维必备:如何利用Application Log高效排查问题(含SLG1高级查询技巧)

SAP系统运维实战:Application Log高级排查与SLG1查询优化指南 1. 理解SAP应用日志的核心价值 在SAP系统运维的日常工作中,Application Log(应用日志)就像一位沉默的见证者,忠实记录着系统运行的每一个关键瞬间。与常规…...

如何使用SQL视图快速生成测试数据_模拟复杂场景

查出来全是NULL主要是因LEFT JOIN右表无匹配数据且未用COALESCE处理空值,或源表本身缺失数据;需检查JOIN条件、改用INNER JOIN验证,并对可能为空字段显式赋予默认值。用 CREATE VIEW 拼接测试数据时,为什么查出来全是 NULL&#x…...

google 内购

以下是用 **Kotlin** 接入 Google Play 内购(Google Play Billing)的完整指南,基于官方 **Billing Library 7.x**(当前稳定版)。包含初始化、查询商品、发起购买、处理购买结果、消耗品确认以及服务端验证建议。 1. 添加依赖 在 `app/build.gradle.kts` 中添加: ```ko…...

如何使用宝塔面板配置高性能网站防火墙_启用WAF防御规则

宝塔面板的ngx_lua_waf需手动启用include luawaf.conf并重启Nginx才生效,拦截在access阶段毫秒级响应;须验证403返回及错误日志确认加载,调整init.lua参数防误杀,并配置real_ip支持CDN。宝塔面板自带的 ngx_lua_waf 是开箱即用的高…...

Tao-8k智能体(Agent)框架开发实战:自主任务规划与执行

Tao-8k智能体(Agent)框架开发实战:自主任务规划与执行 最近和不少做AI应用的朋友聊天,大家都有一个共同的感受:现在的AI模型能力很强,但很多时候还是像个“一问一答”的机器。你问什么,它答什么…...

别再手动点点点了!用Camunda Modeler + SpringBoot 5分钟搞定一个审批流程(附完整代码)

5分钟极速搭建企业级审批流:Camunda Modeler与SpringBoot实战指南 每次看到团队还在用if-else硬编码审批逻辑时,我的内心都是崩溃的。上周又有个新来的实习生问我:"为什么请假审批要改三天代码?" 今天我就用Camunda这个…...

GLM-4.1V-9B-Base实战:手把手教你做图片内容识别与场景描述

GLM-4.1V-9B-Base实战:手把手教你做图片内容识别与场景描述 1. 认识GLM-4.1V-9B-Base视觉理解模型 GLM-4.1V-9B-Base是智谱AI开源的一款强大的视觉多模态理解模型,专门用于处理图像内容识别与理解任务。这个模型的核心优势在于它能够像人类一样"看…...

Qt插件开发实战:从零构建可动态加载的自定义控件

1. 为什么需要Qt自定义控件插件 第一次用Qt设计师拖控件的时候,我就被它的便捷性惊艳到了。但用久了发现一个问题:默认控件库里的组件根本不够用啊!比如要做个十六进制输入框,或者带特殊效果的进度条,官方压根没提供现…...

从单机到云原生:基于 AgentScope Java 构建高可用实时翻译机器人的完整工程实践

从单机到云原生:基于 AgentScope Java 构建高可用实时翻译机器人的完整工程实践 一、前言:为什么“实时翻译”不是调个 API 就能上线 很多团队第一次做实时翻译机器人时,脑海里的链路通常很简单: 音频输入 -> 语音识别 -> 大模型翻译 -> 返回结果 Demo 阶段这…...

智能家居入门:用51单片机实现光照自动控制的窗帘系统(含Proteus仿真文件)

智能家居DIY实战:从零搭建51单片机光控窗帘系统 清晨的阳光透过窗帘缝隙洒进房间,你是否想过让窗帘能自动感知光线变化,为你营造最舒适的室内环境?今天我们将用最经典的51单片机,配合光照传感器和步进电机,…...

鸿蒙权限管理避坑指南:为什么你的元服务总是权限申请失败?

鸿蒙元服务权限管理实战:从原理到避坑指南 在鸿蒙生态中开发元服务时,权限管理往往是开发者遇到的第一个"拦路虎"。许多看似简单的功能调用,却因为权限配置不当而频频报错。我曾在一个智能家居控制元服务项目中,花了整整…...

从理论到实践:深入解析GNSS完好性监测中的RAIM算法家族

1. GNSS完好性监测为什么需要RAIM? 当你用手机导航时,有没有遇到过定位突然漂移几百米的情况?这就是典型的卫星导航信号异常。对于普通用户可能只是多走几步路,但对于自动驾驶汽车或民航飞机,这种误差可能造成严重后果…...

TI MSPM0G3507硬件开发实战:用SysConfig图形化工具5分钟配置GPIO点灯

TI MSPM0G3507开发实战:SysConfig图形化工具5分钟实现GPIO高效配置 在嵌入式开发领域,快速验证硬件功能是每个工程师的基本诉求。传统的手动编写寄存器配置方式不仅耗时耗力,还容易因人为疏忽导致错误。Texas Instruments推出的SysConfig工具…...

AI绘画进阶技巧:从出图到商用,避开版权坑与同质化的核心方法

如何提升AI绘画作品质量选择适合的模型和工具:Stable Diffusion、MidJourney等工具各有特点,针对不同风格需求选择合适模型。例如,写实风格可使用RealESRGAN增强细节,动漫风格可尝试NovelAI模型。优化提示词(Prompt&am…...

基于Qt6.4的PDF阅读器开发:实现高效章节目录与预览图功能

1. Qt6.4 PDF模块开发环境搭建 第一次接触Qt6.4的PDF模块时,我着实被它的便捷性惊艳到了。相比之前用Qt5.9时折腾第三方库的痛苦经历,现在只需要在安装时勾选一个选项就能获得完整的PDF处理能力,这感觉就像从手动挡升级到了自动驾驶。 开发环…...

Zig命令行开发实战:用zigcli库实现参数解析与表格输出的完整指南

Zig命令行开发实战:用zigcli库实现参数解析与表格输出的完整指南 最近在重构团队内部工具链时,我尝试用Zig重写几个常用CLI工具。相比传统方案,Zig的编译时特性和轻量级运行时特别适合这类场景。今天重点分享如何用zigcli库快速构建带参数解析…...

MogFace-large实战教程:结合OpenCV后处理实现人脸关键点对齐

MogFace-large实战教程:结合OpenCV后处理实现人脸关键点对齐 1. 引言:从人脸检测到关键点对齐 人脸检测是计算机视觉领域最基础也最经典的任务之一。无论是手机解锁、美颜相机,还是视频会议里的虚拟背景,背后都离不开一个精准、…...

C++实战笔记(2): 栈

1. 基础知识 栈(Stack)是一种非常经典的线性数据结构,它最核心的特点是 后进先出(Last In First Out, LIFO)。也就是说,最后进入栈的元素,会最先被取出;而最早进入的数据&#x…...

实测AI人脸隐私卫士:远距离小脸也能精准识别并打码

实测AI人脸隐私卫士:远距离小脸也能精准识别并打码 关键词:AI人脸检测、隐私保护、MediaPipe、自动打码、图像脱敏、本地离线处理、远距离识别 1. 背景与需求分析 1.1 远距离人脸识别的技术挑战 在集体活动拍摄、监控安防等场景中,人脸识…...

Pixel Couplet Gen 算法解析:LSTM网络在序列文本生成中的应用

Pixel Couplet Gen 算法解析:LSTM网络在序列文本生成中的应用 1. 传统对联遇上现代AI 春节贴对联是中国延续千年的文化传统,一副好对联讲究平仄相对、对仗工整、意境相合。传统上,这需要深厚的文学功底才能创作。而今天,Pixel C…...