在 OpenHarmony(ArkUI / eTS) 里,“图表”通常有三种常见用法,按从简单到专业给你讲:
OpenHarmony 支持 Canvas,可以画折线、柱状、饼图。
@Entry
@Component
struct ChartPage {
build() {
Column() {
Canvas(this.context)
.width('100%')
.height(300)
.onReady(() => {
const ctx = this.context
ctx.clearRect(0, 0, 300, 300)
ctx.beginPath()
ctx.moveTo(20, 250)
ctx.lineTo(80, 180)
ctx.lineTo(140, 200)
ctx.lineTo(200, 100)
ctx.lineTo(260, 60)
ctx.stroke()
})
}
}
private context: CanvasRenderingContext2D = new CanvasRenderingContext2D()
}
✅ 优点:无依赖、可控
❌ 缺点:复杂图表代码多
适合:折线、柱状、饼图、仪表盘
web 组件加载 EChartspostMessage 传数据Web({ src: $rawfile('echarts.html') })
.javaScriptAccess(true)
echarts.html 里引入 echarts,再通过 JS Bridge 更新数据。
✅ 功能强
❌ 体积大、依赖 Web
社区有一些移植库,适合 ArkUI 原生使用。
OpenHarmony 官方更推荐:
CanvasShape / Path / Rect / Line适合做:
| 场景 | 推荐方式 |
|---|---|
| 学习 / Demo | Canvas |
| 复杂图表 | ECharts |
| 高性能 | 自绘 Canvas |
| 嵌入式 | 轻量库 |
你可以告诉我:
我可以直接给你 可运行代码示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。