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

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

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

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

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-23 20:43 ? 次閱讀

介紹

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

使用說(shuō)明

  1. 添加MiniCanvas依賴
    在項(xiàng)目entry目錄執(zhí)行如下命令安裝MiniCanvas庫(kù):
    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í)知識(shí),可+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)建畫(huà)筆
              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è)置畫(huà)布的屬性
            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)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 組件
    +關(guān)注

    關(guān)注

    1

    文章

    514

    瀏覽量

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

    關(guān)注

    57

    文章

    2378

    瀏覽量

    42940
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3731

    瀏覽量

    16431
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    OpenHarmony源碼編譯后燒錄鏡像教程,RK3566鴻蒙開(kāi)發(fā)板演示

    本文介紹瑞芯微主板/開(kāi)發(fā)板編譯OpenHarmony源碼后燒錄鏡像的教程,觸覺(jué)智能Purple Pi OH鴻蒙開(kāi)發(fā)板演示。搭載了瑞芯微RK3566四核處理器,樹(shù)莓派卡片電腦設(shè)計(jì),支持開(kāi)
    的頭像 發(fā)表于 12-30 10:08 ?134次閱讀
    <b class='flag-5'>OpenHarmony</b>源碼編譯后燒錄鏡像教程,RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b>板演示

    鴻蒙Flutter實(shí)戰(zhàn):14-現(xiàn)有Flutter 項(xiàng)目支持鴻蒙 II

    分別安裝官方的3.22版本,以及鴻蒙社區(qū)的 3.22.0 版本 3.搭建 Flutter鴻蒙開(kāi)發(fā)環(huán)境 參考文章《鴻蒙Flutter實(shí)戰(zhàn):0
    發(fā)表于 12-26 14:59

    OpenHarmony怎么修改DPI密度值?觸覺(jué)智能RK3566鴻蒙開(kāi)發(fā)板演示

    開(kāi)源鴻蒙OpenHarmony系統(tǒng)下,修改DPI密度值的方法,觸覺(jué)智能Purple Pi OH鴻蒙開(kāi)發(fā)板演示,搭載了瑞芯微RK3566四核處理器,Laval
    的頭像 發(fā)表于 12-24 11:46 ?236次閱讀
    <b class='flag-5'>OpenHarmony</b>怎么修改DPI密度值?觸覺(jué)智能RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b>板演示

    鴻蒙原生開(kāi)源庫(kù)ViewPool在OpenHarmony社區(qū)正式上線

    近日,由伙伴參與共建的鴻蒙原生開(kāi)源庫(kù)“ViewPool”在OpenHarmony社區(qū)正式上線。這個(gè)開(kāi)發(fā)庫(kù)是基于OpenHarmony技術(shù)孵化的成果,充分發(fā)揮了平臺(tái)的技術(shù)特性,同時(shí)融入了
    的頭像 發(fā)表于 12-20 14:44 ?270次閱讀

    OpenHarmony屬性信息怎么修改?觸覺(jué)智能RK3566鴻蒙開(kāi)發(fā)板來(lái)演示

    本文介紹開(kāi)源鴻蒙OpenHarmony系統(tǒng)下,修改產(chǎn)品屬性信息的方法,觸覺(jué)智能Purple Pi OH鴻蒙開(kāi)發(fā)板演示,已適配全新OpenHarmon
    的頭像 發(fā)表于 11-27 09:31 ?207次閱讀
    <b class='flag-5'>OpenHarmony</b>屬性信息怎么修改?觸覺(jué)智能RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b>板來(lái)演示

    如何在開(kāi)源鴻蒙OpenHarmony開(kāi)啟SELinux模式?RK3566鴻蒙開(kāi)發(fā)板演示

    本文介紹開(kāi)源鴻蒙OpenHarmony系統(tǒng)下,開(kāi)啟/關(guān)閉SELinux權(quán)限的方法,觸覺(jué)智能Purple Pi OH鴻蒙開(kāi)發(fā)板演示,已適配全新Open
    的頭像 發(fā)表于 11-18 19:03 ?393次閱讀
    如何在開(kāi)源<b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>開(kāi)啟SELinux模式?RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b>板演示

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

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

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

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

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

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

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

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

    【開(kāi)源鴻蒙】下載OpenHarmony 4.1 Release源代碼

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

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

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

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

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

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

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

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

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