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

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

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

【學(xué)習(xí)打卡】OpenHarmony應(yīng)用開發(fā)之二維碼生成器

ArkUI詳解 ? 來源:鴻蒙實(shí)驗(yàn)室 ? 作者:鴻蒙實(shí)驗(yàn)室 ? 2022-07-01 17:53 ? 次閱讀

作者:堅(jiān)果

公眾號(hào):"大前端之旅"

OpenHarmony布道師,InfoQ簽約作者,CSDN博客專家,華為云享專家,阿里云專家博主,51CTO博客首席體驗(yàn)官,開源項(xiàng)目GVA成員之一,專注于大前端技術(shù)的分享,包括Flutter,鴻蒙,小程序,安卓,VUE,JavaScript。

QR code generator

本文展示了二維碼QRCode組件,以及TextInput的使用,實(shí)現(xiàn)了根據(jù)輸入內(nèi)容實(shí)時(shí)生成二維碼。

視頻教程

OpenHarmony應(yīng)用開發(fā)之二維碼生成器

OpenHarmony應(yīng)用開發(fā)之二維碼生成器演示視頻,中華有為!

1P91J9C-0.gif

應(yīng)用場(chǎng)景:

社交、移動(dòng)支付等涉及到方便利用二維碼傳播信息的場(chǎng)景。

如今,隨處可見的二維碼,極大的方便了消費(fèi)者,無論是進(jìn)行移動(dòng)支付還是和他人結(jié)成社交關(guān)系,都是可以通過二維碼進(jìn)行的。甚至有人會(huì)將自己的個(gè)人簡(jiǎn)歷、以及個(gè)人名片制作成為二維碼的形式,需要了解的人可以自行掃描二維碼,了解詳情。在進(jìn)行消息傳送的時(shí)候也會(huì)更加的方便。那么在鴻蒙開發(fā)中如何利用現(xiàn)有組件實(shí)現(xiàn)類似的二維碼生成效果,本文就帶大家了解。

相關(guān)概念

容器組件

Column

基礎(chǔ)組件

Text

TextInput

QRCode

通用屬性

邊框設(shè)置

尺寸設(shè)置

TS語(yǔ)法糖

搭建OpenHarmony環(huán)境

完成本篇Codelab我們首先要完成開發(fā)環(huán)境的搭建,本示例以DaYu200開發(fā)板為例,參照以下步驟進(jìn)行:

獲取OpenHarmony系統(tǒng)版本:標(biāo)準(zhǔn)系統(tǒng)解決方案(二進(jìn)制)

以3.0版本為例:

poYBAGK-xGyAdG5HAAEYQzHHCr8564.png

搭建燒錄環(huán)境

完成DevEco Device Tool的安裝

完成Dayu200開發(fā)板的燒錄

搭建開發(fā)環(huán)境

開始前請(qǐng)參考工具準(zhǔn)備 ,完成DevEco Studio的安裝和開發(fā)環(huán)境配置。

開發(fā)環(huán)境配置完成后,請(qǐng)參考使用工程向?qū)?創(chuàng)建工程(模板選擇“Empty Ability”),選擇eTS語(yǔ)言開發(fā)。

工程創(chuàng)建完成后,選擇使用真機(jī)進(jìn)行調(diào)測(cè) 。

開發(fā)教學(xué)

創(chuàng)建好的 eTS工程目錄

新建工程的ETS目錄如下圖所示。

pYYBAGK-xGyAEJARAAAj7cMDf2E482.png

各個(gè)文件夾和文件的作用:

index.ets:用于描述UI布局、樣式、事件交互和頁(yè)面邏輯。

app.ets:用于全局應(yīng)用邏輯和應(yīng)用生命周期管理。

pages:用于存放所有組件頁(yè)面。

resources:用于存放資源配置文件。

接下來開始正文。

我們的主要操作都是在在app.ets文件中,然后我將用不到10分鐘的時(shí)間,帶大家實(shí)現(xiàn)這個(gè)功能。

在開始之前大家可以先預(yù)覽一下我要實(shí)現(xiàn)的界面效果,如下圖所示:

poYBAGK-xGyARrgYAADQnVSFa6U659.png

我們可以分析一下界面布局,并進(jìn)行一個(gè)簡(jiǎn)單的拆解

拆解

pYYBAGK-xG-ANiS8AAJ-rAqKuWE385.png

整體拆解

根據(jù)設(shè)計(jì)圖,可以看出整體是分行展示的,因此最外層是一個(gè)Column元素

第一行為標(biāo)題,用Text就可以;

第二行是一個(gè)輸入框,用TextInput就可以;

第三行是一個(gè)二維碼,用QRCode就可以;

每一行之間的間隔,則可以考慮用通用屬性中的尺寸設(shè)置來操作。

通過上面這樣一步一步的分析后,基本上對(duì)大致的布局有了一個(gè)了解,最外層的控件大致選對(duì)(只要能實(shí)現(xiàn)的話,就是復(fù)雜度以及效率的問題),然后一步一步的拆解每一行的元素,如果有重復(fù)的或者覺得可以封裝出來的部分,則進(jìn)行下一步。

具體布局

具體布局設(shè)計(jì)到一些細(xì)節(jié)的地方,例如間隔,邊框,當(dāng)前組件尺寸設(shè)置等一些特殊情況,基本上就是嵌套,一層一層去實(shí)現(xiàn)。

運(yùn)行效果圖如下所示。

poYBAGK-xGyARrgYAADQnVSFa6U659.png

代碼結(jié)構(gòu)

poYBAGK-xHCAHpidAABLTdpmZHg978.png

最后是完整代碼:

// @ts-nocheck

@Entry

@Component

struct QRCodeExample {

@State private desc: string = '跟著堅(jiān)果學(xué)OpenHarmony'

private title: string = '二維碼生成器'

build() {

Column() {

Text(this.title).margin(30).fontColor(Color.Orange).fontSize(50).fontWeight(FontWeight.Bold)

TextInput({ placeholder: '請(qǐng)輸入要生成的內(nèi)容', }).fontSize(36).enterKeyType(EnterKeyType.Go).

onChange((value) => {

this.desc = value;

}).height(80).margin({

top: 40,

left: 16,

right: 16

})

QRCode(this.desc)

.color(Color.Orange)

.width(200)

.height(200)

.margin({ top: 50 })

.border({

width: 12, color: Color.Pink, style: BorderStyle.Dotted

})

}

}

}

恭喜您

pYYBAGK-xHaAa_m3AAQpHLlTVz8119.png

在本文中,我主要為大家講解了如下ArkUI(基于TS擴(kuò)展的類Web開發(fā)范式)基礎(chǔ)組件

容器組件

Column

基礎(chǔ)組件

Text

TextInput

QRCode

通用屬性

邊框設(shè)置

尺寸設(shè)置

通過一個(gè)代碼示例,實(shí)現(xiàn)一個(gè)二維碼生成器,希望通過本教程,各位開發(fā)者可以對(duì)以上基礎(chǔ)組件具有更深刻的認(rèn)識(shí)。

審核編輯:符乾江

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

    關(guān)注

    79

    文章

    1975

    瀏覽量

    30194
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3722

    瀏覽量

    16317
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    飛凌嵌入式ElfBoard ELF 1板卡-在線二維碼生成器

    在線二維碼生成器允許用戶將文本、網(wǎng)址、圖片或其他數(shù)據(jù)轉(zhuǎn)換為二維碼形式。二維碼是一種特殊類型的條形碼,它可以通過掃描來快速識(shí)別和讀取信息。在線二維碼
    發(fā)表于 04-24 17:00

    二維碼識(shí)別

    `利用筆記本電腦的攝像頭采集二維碼圖像并識(shí)別,顯示二維碼的信息!下載了labview視覺與運(yùn)動(dòng)模塊的可以下來看看!里面有2張二維碼,用二維碼生成器
    發(fā)表于 08-27 16:52

    生成二維碼

    生成二維碼
    發(fā)表于 11-11 14:28

    如何在VB 2010中制作二維碼生成器?

    你好,所以我在VB 2010中制作了一個(gè)二維碼生成器。然而,如果我能用安捷倫制作它,它會(huì)讓事情變得容易多了。有人有什么想法嗎?我將發(fā)布我對(duì)此的任何進(jìn)展。謝謝。 以上來自于谷歌翻譯 以下為原文
    發(fā)表于 08-07 11:47

    二維碼軟件中制作Dot Code二維碼的步驟

    ,手動(dòng)輸入要編輯的信息,點(diǎn)擊編輯-確定,Dot Code二維碼生成了?!     ot Code二維碼支持多種格式、方向、模式、大小、掩碼等,如有需求可以根據(jù)自己的需求在圖形屬性-條碼-Dot
    發(fā)表于 12-02 15:45

    OpenHarmony應(yīng)用開發(fā)之二維碼生成器

    OpenHarmony應(yīng)用開發(fā)之二維碼生成器作者:堅(jiān)果公眾號(hào):"大前端之旅"OpenHarmony布道師,InfoQ簽約作者,CSDN博客專
    發(fā)表于 07-01 18:02

    #深入淺出學(xué)習(xí)eTs#(九)變紅?專屬二維碼生成

    本項(xiàng)目Gitee倉(cāng)地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)一、需求分析我們本章的內(nèi)容是要制作一個(gè)可以隨著自己想要內(nèi)容而變化的一個(gè)二維碼,通過輸入框輸入內(nèi)容,實(shí)現(xiàn)
    發(fā)表于 12-29 10:09

    OpenHarmony應(yīng)用實(shí)現(xiàn)二維碼識(shí)別

    應(yīng)用的掃描二維碼的頁(yè)面。 本文就以??橘子購(gòu)物示例應(yīng)用??為例,來講解OpenHarmony應(yīng)用二維碼開發(fā)相關(guān)的技術(shù)點(diǎn)。 我們先看下二維碼
    發(fā)表于 08-23 17:00

    固定二維碼與變動(dòng)二維碼防偽標(biāo)簽的作用

    電子發(fā)燒友網(wǎng)站提供《固定二維碼與變動(dòng)二維碼防偽標(biāo)簽的作用.docx》資料免費(fèi)下載
    發(fā)表于 05-08 08:00 ?1次下載

    如何將視頻轉(zhuǎn)換生成二維碼觀看

    如今,二維碼的應(yīng)用越來越廣了,也非常方便,那么如何把視頻轉(zhuǎn)換生成二維碼呢?網(wǎng)頁(yè)地址轉(zhuǎn)換二維碼的工具很多,但視頻轉(zhuǎn)換二維碼的工具,可就比較少了
    發(fā)表于 07-30 15:21 ?1.3w次閱讀

    二維碼在智能門禁中的應(yīng)用,二維碼門禁如何保證安全性

    是:會(huì)的。 若不夠用,是不是會(huì)重復(fù)使用?那對(duì)智能門禁而言,又怎樣能保證二維碼的安全性?要想搞清這些問題,我們需要從二維碼原理說起。二維碼怎樣識(shí)別?二維碼技術(shù)包含
    的頭像 發(fā)表于 07-19 10:33 ?3817次閱讀
    <b class='flag-5'>二維碼</b>在智能門禁中的應(yīng)用,<b class='flag-5'>二維碼</b>門禁如何保證安全性

    鴻蒙系統(tǒng)生成二維碼技術(shù)

    ?? 在實(shí)際應(yīng)用開發(fā)中,時(shí)不時(shí)的會(huì)遇到 AI 領(lǐng)域相關(guān)的一些技術(shù),本節(jié)主要詳細(xì)講述一下生成二維碼技術(shù),二維碼可能涉及在各領(lǐng)域中,如:社交或通訊類應(yīng)用、購(gòu)物或支付類應(yīng)用等。 ??? ?
    的頭像 發(fā)表于 10-19 09:17 ?2719次閱讀

    51單片機(jī)生成二維碼

    51單片機(jī)生成二維碼
    發(fā)表于 11-12 13:51 ?30次下載
    51單片機(jī)<b class='flag-5'>生成</b><b class='flag-5'>二維碼</b>

    LV版本的二維碼生成及源碼分享

    LV版本的二維碼生成及源碼分享。
    發(fā)表于 04-11 15:06 ?0次下載

    Labview生成二維碼

    ?Labview 的一個(gè)Demo,生成二維碼。
    發(fā)表于 08-01 17:12 ?7次下載