0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙OpenHarmony開發(fā)實戰(zhàn):【MiniCanvas】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-23 20:43 ? 次閱讀

介紹

基于OpenHarmony的Cavas組件封裝了一版極簡操作的MiniCanvas,屏蔽了原有Canvas內(nèi)部復(fù)雜的調(diào)用流程,支持一個API就可以實現(xiàn)相應(yīng)的繪制能力,該庫還在繼續(xù)完善中,也歡迎PR。

使用說明

  1. 添加MiniCanvas依賴
    在項目entry目錄執(zhí)行如下命令安裝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繪制更多鴻蒙學(xué)習(xí)知識,可+mau123789,記住是v喔
    // import { MiniCanvas, Paint, ICanvas } from '@ohos/mini_canvas'
    // 源碼方式引入
    import { MiniCanvas, Paint } from "./mini_canvas"
    
    @Entry @Component struct TestMiniCanvas {
      build() {
        Column() {
          MiniCanvas({
            // 在onDraw()方法內(nèi)執(zhí)行繪制
            onDraw: (canvas) = > {
              // 創(chuàng)建畫筆
              let paint = new Paint()
    
              // 繪制直線
              paint.setColor("#FF0000");
              paint.setStrokeWidth(5);
              canvas.drawLine(10, 10, 280, 10, paint);
    
              // 繪制圓以及圓環(huán)
              canvas.drawCircle(50, 50, 25, paint);
              paint.setStroke(true);
              paint.setStrokeWidth(3);
              canvas.drawCircle(250, 50, 25, paint);
    
              // 繪制橢圓以及橢圓環(huán)
              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)
            },
            // 設(shè)置畫布的屬性
            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%"})
      }
    }
    

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 組件
    +關(guān)注

    關(guān)注

    1

    文章

    503

    瀏覽量

    17786
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2302

    瀏覽量

    42689
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3635

    瀏覽量

    16061
收藏 人收藏

    評論

    相關(guān)推薦

    觸覺智能Purple Pi OH鴻蒙開發(fā)板成功適配OpenHarmony5.0 Release,開啟新征程

    觸覺智能Purple Pi OH鴻蒙開發(fā)板,成功適配OpenHarmony5.0 Release版本!為大家?guī)?b class='flag-5'>OpenHarmony5.0特性講解!關(guān)注觸覺智能,為大家?guī)砀?/div>
    的頭像 發(fā)表于 10-25 10:51 ?265次閱讀
    觸覺智能Purple Pi OH<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>板成功適配<b class='flag-5'>OpenHarmony</b>5.0 Release,開啟新征程

    鴻蒙Flutter實戰(zhàn):08-如何調(diào)試代碼

    # 鴻蒙Flutter實戰(zhàn):如何調(diào)試代碼 ## 1.環(huán)境搭建 參考文章[鴻蒙Flutter實戰(zhàn):01-搭建開發(fā)環(huán)境](https://g
    發(fā)表于 10-23 16:29

    鴻蒙Flutter實戰(zhàn):07混合開發(fā)

    # 鴻蒙Flutter實戰(zhàn):混合開發(fā) 鴻蒙Flutter混合開發(fā)主要有兩種形式。 ## 1.基于har 將flutter module
    發(fā)表于 10-23 16:00

    鴻蒙OpenHarmony南向/北向快速開發(fā)教程-迅為RK3568開發(fā)

    4.1學(xué)習(xí)之旅了嗎?快來加入我們,一起探索鴻蒙4.1系統(tǒng)的無限魅力吧! 【北京迅為】OpenHarmony學(xué)習(xí)開發(fā)系列教程(第1期 北向基礎(chǔ)篇一) P0_先導(dǎo)課 P1_OpenHarmony
    發(fā)表于 07-23 10:44

    OpenHarmony實戰(zhàn)開發(fā)-如何實現(xiàn)窗口開發(fā)概述

    你們的 『點贊和評論』,才是我創(chuàng)造的動力。 關(guān)注小編,同時可以期待后續(xù)文章ing?,不定期分享原創(chuàng)知識。 更多鴻蒙最新技術(shù)知識點,請關(guān)注作者博客:鴻蒙實戰(zhàn)經(jīng)驗分享:鴻蒙基礎(chǔ)入門
    發(fā)表于 05-06 14:29

    【開源鴻蒙】下載OpenHarmony 4.1 Release源代碼

    本文介紹了如何下載開源鴻蒙OpenHarmony)操作系統(tǒng) 4.1 Release版本的源代碼,該方法同樣可以用于下載OpenHarmony最新開發(fā)版本(master分支)或者4.0
    的頭像 發(fā)表于 04-27 23:16 ?780次閱讀
    【開源<b class='flag-5'>鴻蒙</b>】下載<b class='flag-5'>OpenHarmony</b> 4.1 Release源代碼

    鴻蒙開發(fā)實例:【配置OpenHarmony SDK】

    在設(shè)置OpenHarmony應(yīng)用開發(fā)環(huán)境時,需要開發(fā)者在DevEco Studio中配置對應(yīng)的SDK信息。
    的頭像 發(fā)表于 04-22 15:24 ?1699次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>實例:【配置<b class='flag-5'>OpenHarmony</b> SDK】

    鴻蒙OS南向開發(fā)實戰(zhàn):【智能電子牌】

    本Demo是基于hi3516dv300開發(fā)板,使用開源鴻蒙OpenHarmony 開發(fā)的應(yīng)用。通過該應(yīng)用不僅可以查看時間、日期以及對應(yīng)的室內(nèi)外溫濕度、空氣質(zhì)量等,還可以查看當(dāng)日的行程,
    的頭像 發(fā)表于 04-09 15:24 ?732次閱讀
    <b class='flag-5'>鴻蒙</b>OS南向<b class='flag-5'>開發(fā)</b><b class='flag-5'>實戰(zhàn)</b>:【智能電子牌】

    鴻蒙開發(fā)實戰(zhàn):【Hdf Framework】

    該倉主要存放OpenHarmony驅(qū)動子系統(tǒng)核心源碼信息(包括驅(qū)動框架、配置管理、配置解析、驅(qū)動通用框架模型、硬件通用平臺能力接口等),旨在為開發(fā)者提供更精準(zhǔn)、更高效的開發(fā)環(huán)境,力求做到一次
    的頭像 發(fā)表于 03-21 20:29 ?408次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實戰(zhàn)</b>:【Hdf Framework】

    OpenHarmony鴻蒙實戰(zhàn)】在RK3399開發(fā)板實現(xiàn)智能門禁人臉識別

    基于RK3399開發(fā)板,使用OpenHarmony3.0-LTS開發(fā)的應(yīng)用。通過定時獲取攝像頭數(shù)據(jù),實現(xiàn)人臉識別比對等功能。
    的頭像 發(fā)表于 03-20 17:38 ?1131次閱讀
    【<b class='flag-5'>OpenHarmony</b><b class='flag-5'>鴻蒙</b><b class='flag-5'>實戰(zhàn)</b>】在RK3399<b class='flag-5'>開發(fā)</b>板實現(xiàn)智能門禁人臉識別

    深圳市24年,實現(xiàn)鴻蒙原生應(yīng)用數(shù)占全國總量10%以上

    、Harmony南向開發(fā)、鴻蒙項目實戰(zhàn)等等)鴻蒙(Harmony NEXT)技術(shù)知識點 高清完整版與筆記請加→mau123789是衛(wèi)呀 針對鴻蒙
    發(fā)表于 03-04 21:42

    鴻蒙實戰(zhàn)項目開發(fā):【短信服務(wù)】

    OpenHarmony 多媒體技術(shù)、Napi組件、OpenHarmony內(nèi)核、Harmony南向開發(fā)鴻蒙項目實戰(zhàn)等等)
    發(fā)表于 03-03 21:29

    鴻蒙這么大聲勢,為何遲遲看不見崗位?最新數(shù)據(jù)來了

    令頁,是v喔! 《鴻蒙 (OpenHarmony)開發(fā)學(xué)習(xí)視頻》 《鴻蒙 (OpenHarmony)
    發(fā)表于 02-29 20:53

    鴻蒙不再兼容安卓,那么鴻蒙開發(fā)者是否會大增?

    。以上為略縮版圖冊,如果需要高清完整的可以在主頁4或https://qr23.cn/AKFP8k保存。 內(nèi)容涵蓋:(文檔形式) OpenHarmony入門基礎(chǔ) OpenHarmony核心技能 OpenHarmony高級技能
    發(fā)表于 01-31 22:17

    鴻蒙開發(fā)OpenHarmony組件復(fù)用案例

    ) } }, item => item) } } } 本文主要是對鴻蒙開發(fā)基礎(chǔ)當(dāng)中的OpenHarmony技術(shù)組件復(fù)用示例, 更多鴻蒙開發(fā)
    發(fā)表于 01-15 17:37