【HarmonyOS Next】鸿蒙应用加载SVG文件显示图标

news/2025/3/12 0:30:33/

SVG_0">【HarmonyOS Next】鸿蒙应用加载SVG文件显示图标

SVG_2">一、SVG是什么?

SVG 即可缩放矢量图形(Scalable Vector Graphics),它是一种基于 XML 语法的二维矢量图形格式,由万维网联盟(W3C)制定。

SVG 使用 XML 文本格式来描述图形,与传统的位图图像(如 JPEG、PNG 等)不同,SVG 图形是由一系列的点、线、形状和颜色定义组成的,而不是像素点。这使得 SVG 图形具有无限的可扩展性,无论放大或缩小多少倍,图形都能保持清晰、不失真。

SVG 代码示例,用于绘制一个黄色的圆形:

<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="40" fill="yellow" />
</svg>

二、鸿蒙中如何加载显示?

首先将 SVG 文件放置在项目的 entry/src/main/resources/base/media 目录下。

在这里插入图片描述



struct SvgIconExample {build() {Column({ space: 50 }) {// 假设 svg 文件名为 icon.svgImage($r('media.icon')) .width(100).height(100)}.width('100%').padding({ top: 50 })}
}

$r 是资源引用函数,media.icon 表示引用 media 目录下名为 icon 的资源文件。这里会加载 entry/src/main/resources/base/media 目录下的 icon.svg 文件。

三、源码示例:

以下是一个将本地加载 SVG 和网络加载 SVG



struct SvgLoadingExample {build() {Column({ space: 50 }).width('100%').padding({ top: 50 }).alignItems(FlexAlign.Center) {// 本地加载 SVGText('本地加载 SVG').fontSize(20).fontWeight(FontWeight.Bold)// 假设本地 SVG 文件名为 local_icon.svgImage($r('media.local_icon')) .width(100).height(100)// 网络加载 SVGText('网络加载 SVG').fontSize(20).fontWeight(FontWeight.Bold)Image('https://upload.wikimedia.org/wikipedia/commons/thumb/4/4f/SVG_Logo.svg/1200px-SVG_Logo.svg.png') .width(100).height(100)}}
}

http://www.ppmy.cn/news/1578488.html

相关文章

《Python实战进阶》No20: 网络爬虫开发:Scrapy框架详解

No20: 网络爬虫开发&#xff1a;Scrapy框架详解 摘要 本文深入解析Scrapy核心架构&#xff0c;通过中间件链式处理、布隆过滤器增量爬取、Splash动态渲染、分布式指纹策略四大核心技术&#xff0c;结合政府数据爬取与动态API逆向工程实战案例&#xff0c;构建企业级爬虫系统。…

分类学习(加入半监督学习)

#随机种子固定&#xff0c;随机结果也固定 def seed_everything(seed):torch.manual_seed(seed)torch.cuda.manual_seed(seed)torch.cuda.manual_seed_all(seed)torch.backends.cudnn.benchmark Falsetorch.backends.cudnn.deterministic Truerandom.seed(seed)np.random.see…

【高分论文密码】AI大模型和R语言的全类型科研图形绘制,从画图、标注、改图、美化、组合、排序分解科研绘图每个步骤

在科研成果竞争日益激烈的当下&#xff0c;「一图胜千言」已成为高水平SCI期刊的硬性门槛——数据显示很多情况的拒稿与图表质量直接相关。科研人员普遍面临的工具效率低、设计规范缺失、多维数据呈现难等痛点&#xff0c;因此科研绘图已成为成果撰写中的至关重要的一个环节&am…

正则表达式,idea,插件anyrule

​​​​package lx;import java.util.regex.Pattern;public class lxx {public static void main(String[] args) {//正则表达式//写一个电话号码的正则表达式String regex "1[3-9]\\d{9}";//第一个数字是1&#xff0c;第二个数字是3-9&#xff0c;后面跟着9个数字…

【大模型】DeepSeek-R1-Distill-Qwen部署及API调用

DeepSeek-R1-Distill-Qwen 是由中国人工智能公司深度求索&#xff08;DeepSeek&#xff09;开发的轻量化大语言模型&#xff0c;基于阿里巴巴的Qwen系列模型通过知识蒸馏技术优化而来。当前模型开源后&#xff0c;我们可以将其部署&#xff0c;使用API方式进行本地调用 1.部署…

MyBatis-Plus 与 Spring Boot 的最佳实践

在现代 Java 开发中,MyBatis-Plus 和 Spring Boot 的结合已经成为了一种非常流行的技术栈。MyBatis-Plus 是 MyBatis 的增强工具,提供了许多便捷的功能,而 Spring Boot 则简化了 Spring 应用的开发流程。本文将探讨如何将 MyBatis-Plus 与 Spring Boot 进行整合,并分享一些…

【二分算法】-- 三种二分模板总结

文章目录 1. 特点2. 学习中的侧重点2.1 算法原理2.2 模板2.2.1 朴素二分模板&#xff08;easy-->有局限&#xff09;2.2.2 查找左边界的二分模板2.2.3 查找右边界的二分模板 1. 特点 二分算法是最恶心&#xff0c;细节最多&#xff0c;最容易写出死循环的算法但是&#xff…

案例分析:安防5G低代码开发网关如何提升城市监控效率

在现代城市管理中&#xff0c;安防监控中心扮演着至关重要的角色。作为城市安全的“神经中枢”&#xff0c;它需要高效、稳定且智能化的设备来支撑其日常运作。而安防工控机&#xff08;又称“智能安防中枢”&#xff09;正是这一场景中的核心设备之一。它不仅能够处理海量数据…