0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙OpenHarmony开发实战:【MiniCanvas】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-03-23 20:43 次阅读

介绍

基于OpenHarmony的Cavas组件封装了一版极简操作的MiniCanvas,屏蔽了原有Canvas内部复杂的调用流程,支持一个API就可以实现相应的绘制能力,该库还在继续完善中,也欢迎PR。

使用说明

  1. 添加MiniCanvas依赖
    在项目entry目录执行如下命令安装MiniCanvas库:
    npm install git+https://gitee.com/ark-ui/MiniCanvas.git
    
  2. 引入MiniCanvas
    import { MiniCanvas, Paint, ICanvas } from '@ohos/mini_canvas'
    
  3. 使用MiniCanvas
    @Entry @Component struct TestMiniCanvas {
      build() {
        Column() {
          MiniCanvas({
            onDraw: (canvas) = > {
    
            }
          })
        }
        .size({width: "100%", height: "100%"})
      }
    }
    
  4. MiniCanvas绘制更多鸿蒙学习知识,可+mau123789,记住是v喔
    // import { MiniCanvas, Paint, ICanvas } from '@ohos/mini_canvas'
    // 源码方式引入
    import { MiniCanvas, Paint } from "./mini_canvas"
    
    @Entry @Component struct TestMiniCanvas {
      build() {
        Column() {
          MiniCanvas({
            // 在onDraw()方法内执行绘制
            onDraw: (canvas) = > {
              // 创建画笔
              let paint = new Paint()
    
              // 绘制直线
              paint.setColor("#FF0000");
              paint.setStrokeWidth(5);
              canvas.drawLine(10, 10, 280, 10, paint);
    
              // 绘制圆以及圆环
              canvas.drawCircle(50, 50, 25, paint);
              paint.setStroke(true);
              paint.setStrokeWidth(3);
              canvas.drawCircle(250, 50, 25, paint);
    
              // 绘制椭圆以及椭圆环
              paint.setStroke(false);
              canvas.drawOval(20, 100, 150, 50, paint)
              paint.setStroke(true);
              paint.setColor(Color.Pink.toString())
              canvas.drawOval(190, 100, 150, 50, paint)
    
              // 绘制矩形
              paint.setStroke(false)
              canvas.drawRect(20, 180, 150, 50, paint)
              paint.setStroke(true)
              paint.setStrokeWidth(5)
              canvas.drawRect(190, 180, 150, 50, paint)
    
              // 绘制圆角矩形
              paint.setStroke(false);
              canvas.drawRoundRect(20, 250, 150, 50, 10, paint)
              paint.setStroke(true);
              canvas.drawRoundRect(190, 250, 150, 50, 10, paint)
    
    
              // 绘制圆弧
              canvas.drawArc(80, 330, 40, 0, 135, paint);
              paint.setStroke(false);
              canvas.drawArc(250, 330, 40, 0, 135, paint);
    
              // 绘制图片
              let bitmap = new ImageBitmap("pages/test.jpg")
              canvas.drawImage(bitmap, 10, 10, 800, 600, 20, 400, 320, 160, paint)
            },
            // 设置画布的属性
            attribute: {
              id: "mini_canvas",
              width: "100%",
              height: "100%",
              background: "#ffffff",
              clickListener: (event) = > {
                console.log("onClicked: " + JSON.stringify(event));
              },
              touchListener: (event) = > {
                console.log("onTouched: " + JSON.stringify(event));
              }
            },
          })
        }
        .size({width: "100%", height: "100%"})
      }
    }
    

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 组件
    +关注

    关注

    1

    文章

    504

    浏览量

    17799
  • 鸿蒙
    +关注

    关注

    57

    文章

    2306

    浏览量

    42730
  • OpenHarmony
    +关注

    关注

    25

    文章

    3657

    浏览量

    16129
收藏 人收藏

    评论

    相关推荐

    如何在开源鸿蒙OpenHarmony开启SELinux模式?RK3566鸿蒙开发板演示

    本文介绍开源鸿蒙OpenHarmony系统下,开启/关闭SELinux权限的方法,触觉智能Purple Pi OH鸿蒙开发板演示,已适配全新Open
    的头像 发表于 11-18 19:03 139次阅读
    如何在开源<b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>开启SELinux模式?RK3566<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>板演示

    触觉智能Purple Pi OH鸿蒙开发板成功适配OpenHarmony5.0 Release,开启新征程

    触觉智能Purple Pi OH鸿蒙开发板,成功适配OpenHarmony5.0 Release版本!为大家带来OpenHarmony5.0特性讲解!关注触觉智能,为大家带来更多
    的头像 发表于 10-25 10:51 302次阅读
    触觉智能Purple Pi OH<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>板成功适配<b class='flag-5'>OpenHarmony</b>5.0 Release,开启新征程

    鸿蒙Flutter实战:08-如何调试代码

    # 鸿蒙Flutter实战:如何调试代码 ## 1.环境搭建 参考文章[鸿蒙Flutter实战:01-搭建开发环境](https://g
    发表于 10-23 16:29

    鸿蒙Flutter实战:07混合开发

    # 鸿蒙Flutter实战:混合开发 鸿蒙Flutter混合开发主要有两种形式。 ## 1.基于har 将flutter module
    发表于 10-23 16:00

    鸿蒙OpenHarmony南向/北向快速开发教程-迅为RK3568开发

    4.1学习之旅了吗?快来加入我们,一起探索鸿蒙4.1系统的无限魅力吧! 【北京迅为】OpenHarmony学习开发系列教程(第1期 北向基础篇一) P0_先导课 P1_OpenHarmony
    发表于 07-23 10:44

    OpenHarmony实战开发-如何实现窗口开发概述

    你们的 『点赞和评论』,才是我创造的动力。 关注小编,同时可以期待后续文章ing?,不定期分享原创知识。 更多鸿蒙最新技术知识点,请关注作者博客:鸿蒙实战经验分享:鸿蒙基础入门
    发表于 05-06 14:29

    【开源鸿蒙】下载OpenHarmony 4.1 Release源代码

    本文介绍了如何下载开源鸿蒙OpenHarmony)操作系统 4.1 Release版本的源代码,该方法同样可以用于下载OpenHarmony最新开发版本(master分支)或者4.0
    的头像 发表于 04-27 23:16 812次阅读
    【开源<b class='flag-5'>鸿蒙</b>】下载<b class='flag-5'>OpenHarmony</b> 4.1 Release源代码

    鸿蒙开发实例:【配置OpenHarmony SDK】

    在设置OpenHarmony应用开发环境时,需要开发者在DevEco Studio中配置对应的SDK信息。
    的头像 发表于 04-22 15:24 1745次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>实例:【配置<b class='flag-5'>OpenHarmony</b> SDK】

    鸿蒙OS南向开发实战:【智能电子牌】

    本Demo是基于hi3516dv300开发板,使用开源鸿蒙OpenHarmony 开发的应用。通过该应用不仅可以查看时间、日期以及对应的室内外温湿度、空气质量等,还可以查看当日的行程,
    的头像 发表于 04-09 15:24 741次阅读
    <b class='flag-5'>鸿蒙</b>OS南向<b class='flag-5'>开发</b><b class='flag-5'>实战</b>:【智能电子牌】

    OpenHarmony鸿蒙实战】在RK3399开发板实现智能门禁人脸识别

    基于RK3399开发板,使用OpenHarmony3.0-LTS开发的应用。通过定时获取摄像头数据,实现人脸识别比对等功能。
    的头像 发表于 03-20 17:38 1172次阅读
    【<b class='flag-5'>OpenHarmony</b><b class='flag-5'>鸿蒙</b><b class='flag-5'>实战</b>】在RK3399<b class='flag-5'>开发</b>板实现智能门禁人脸识别

    深圳市24年,实现鸿蒙原生应用数占全国总量10%以上

    、Harmony南向开发鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点 高清完整版与笔记请加→mau123789是卫呀 针对鸿蒙
    发表于 03-04 21:42

    鸿蒙实战项目开发:【短信服务】

    OpenHarmony 多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发鸿蒙项目实战等等)
    发表于 03-03 21:29

    鸿蒙这么大声势,为何迟迟看不见岗位?最新数据来了

    令页,是v喔! 《鸿蒙 (OpenHarmony)开发学习视频》 《鸿蒙 (OpenHarmony)
    发表于 02-29 20:53

    鸿蒙不再兼容安卓,那么鸿蒙开发者是否会大增?

    。以上为略缩版图册,如果需要高清完整的可以在主页4或https://qr23.cn/AKFP8k保存。 内容涵盖:(文档形式) OpenHarmony入门基础 OpenHarmony核心技能 OpenHarmony高级技能
    发表于 01-31 22:17

    鸿蒙开发OpenHarmony组件复用案例

    ) } }, item => item) } } } 本文主要是对鸿蒙开发基础当中的OpenHarmony技术组件复用示例, 更多鸿蒙开发
    发表于 01-15 17:37