精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

ArkUI eTS健康飲食APP之自定義PieChart組件

系統 OpenHarmony
此帖詳細介紹基于畫布組件Canvas上,畫一個餅圖自定義組件,這里先來了解一下Canvas組件的屬性和方法。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

前言

此帖詳細介紹基于畫布組件Canvas上,畫一個餅圖自定義組件,這里先來了解一下Canvas組件的屬性和方法,下面先顯示此帖子Demo的效果:

#打卡不停更#ArkUI eTS健康飲食APP之自定義PieChart組件-開源基礎軟件社區

Canvas組件

#打卡不停更#ArkUI eTS健康飲食APP之自定義PieChart組件-開源基礎軟件社區
#打卡不停更#ArkUI eTS健康飲食APP之自定義PieChart組件-開源基礎軟件社區
#打卡不停更#ArkUI eTS健康飲食APP之自定義PieChart組件-開源基礎軟件社區
#打卡不停更#ArkUI eTS健康飲食APP之自定義PieChart組件-開源基礎軟件社區

這里只是此自定義組件用到Canvas畫布組件的關鍵屬性,接口;要查看更多的關于Canvas參數接口,請移步到官方文檔:?https://developer.harmonyos.com/cn/docs/documentation/doc-references/ts-canvasrenderingcontext2d-0000001333720961。

Demo介紹

創建一個新的eTS文件,用來編寫自定義PicChart組件,代碼如下:

@Component
export struct CustomPieChart {
// 餅圖數據
private picChartElements: PicChartElement[]
// 圓半徑
@State circle_radius:number = 80
// 單位
@State unit: string = "克"
// 獲取上下文
private settings: RenderingContextSettings = new RenderingContextSettings(true)
private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)

aboutToAppear() {
let total = 0
// 統計總數量
this.picChartElements.forEach((value) => {
total += value.quantity
})

// 初始化 弧線的終止弧度
let lastEndAngle = -0.5 * Math.PI
// 封裝餅圖數據
this.picChartElements.forEach((value) => {
// 占用百分比
let percent = value.quantity / total
// 四舍五入,獲取整數
value.percent = Math.round(percent * 100)
// 初始化終止弧度為 弧線的起始弧度
value.beginAngle = lastEndAngle
// 計算弧線的終止弧度
value.endAngle = (percent * 2 * Math.PI) + lastEndAngle
// 賦值終止弧度為變量,作為下次的起始弧度
lastEndAngle = value.endAngle
// 返回封裝好的對象
return value
})
}

build() {
Column({space: 30}) {
Canvas(this.context)
// 高度為半徑2倍
.height(this.circle_radius * 2)
// 縱橫比,寬度和高度一樣
.aspectRatio(1)
// 畫布組件的事件回調,可以在此時進行繪制
.onReady(() => {
this.picChartElements.forEach((item) => {
// 創建一個新的控制路徑
this.context.beginPath()
// 路徑從當前點移動到指定點
this.context.moveTo(this.circle_radius, this.circle_radius)
// 繪制弧線路徑(弧線圓心的x坐標值,弧線圓心的y坐標值,弧線的圓半徑,弧線的起始弧度,弧線的終止弧度)
this.context.arc(this.circle_radius, this.circle_radius, this.circle_radius, item.beginAngle, item.endAngle)
// 指定繪制的填充色
this.context.fillStyle = item.color
// 對封閉路徑進行填充
this.context.fill()
})
})
Flex({direction: FlexDirection.Row, wrap: FlexWrap.Wrap, justifyContent: FlexAlign.SpaceAround}) {
ForEach(this.picChartElements, (item: PicChartElement) => {
Row({ space: 4 }) {
// 標注圓點顏色
Circle({ width: 8, height: 8 }).fill(item.color)
// 標注文本
Text(item.element).fontSize(12)
// 標注數量
Text(item.quantity + ' ' + this.unit).fontSize(12)
}
.height(30)
})
}
.width('100%')
}
.width('100%')
}
}
export class PicChartElement {
element: Resource | string // 顯示文本
quantity: number // 數量
percent: number // 百分比
beginAngle: number // 弧線的起始弧度
endAngle: number // 弧線的終止弧度
color: string // 顏色
constructor(element: Resource | string, quantity: number, color: string) {
this.element = element
this.quantity = quantity
this.color = color
}
}

通過import引用自定義PieChart組件到要使用的頁面,創建Sample頁面,根據PieChart數據實體類定義餅圖數據源,文本,數量,顏色對象,餅圖半徑,顯示單位可選,默認半徑為80,單位為克。具體使用方法看Sample代碼如下:

// 引用自定義組件
import { CustomPieChart, PicChartElement } from '../components/CustomPieChart'
@Entry
@Component
struct SampleCustomPicChart {
// 餅圖1數據
private picChartElements: PicChartElement[] = [
new PicChartElement('蛋白質', 14.9, '#ff9421'),
new PicChartElement('脂肪', 39.8, '#ffd100'),
new PicChartElement('碳水', 19.1, '#4cd041'),
new PicChartElement('甜點', 9.1, '#4cd0ee'),
new PicChartElement('海鮮', 11.1, '#999999')
]
// 餅圖2數據
private picChartElements2: PicChartElement[] = [
new PicChartElement('蛋白質', 5.9, '#ff9421'),
new PicChartElement('脂肪', 9.8, '#ffd100'),
new PicChartElement('碳水', 7.1, '#4cd041')
]
build() {
Column({ space: 10 }) {
// 餅圖1 (半徑,單位使用默認值)
CustomPieChart({picChartElements: this.picChartElements})
// 餅圖2 (半徑指定為120, 單位指定為kcal)
CustomPieChart({picChartElements: this.picChartElements2, circle_radius: 120, unit: 'kcal'})
}
.width('100%')
.padding(30)
}
}

總結

通過此帖,可以簡單學會自定義PieChart組件,如何引用使用,在健康飲食APP里,再次完成了一小部分內容,下來繼續一個個組件完成,然后拼裝就出來一個健康飲食APP了。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??。

責任編輯:jianghua 來源: 51CTO開源基礎軟件社區
相關推薦

2022-10-09 15:13:18

TextPickerArkUI eTS

2022-05-26 14:50:15

ArkUITS擴展

2022-09-16 15:34:32

CanvasArkUI

2022-05-20 14:34:20

list組件鴻蒙操作系統

2021-11-24 10:02:53

鴻蒙HarmonyOS應用

2022-07-06 20:24:08

ArkUI計時組件

2022-03-21 15:19:27

鴻蒙UI組件ets自定義

2022-05-23 10:53:54

canvas柱狀圖鴻蒙

2021-11-01 10:21:36

鴻蒙HarmonyOS應用

2022-07-15 16:39:46

ETS導航欄組件

2022-10-08 16:26:23

APP應用開發

2022-06-30 14:02:07

鴻蒙開發消息彈窗組件

2022-07-15 16:45:35

slider滑塊組件鴻蒙

2022-06-20 15:43:45

switch開關鴻蒙

2022-10-24 14:49:54

ArkUI心電圖組件

2022-07-04 16:34:46

流光按鈕Stack

2021-12-24 15:46:23

鴻蒙HarmonyOS應用

2022-07-12 16:56:48

自定義組件鴻蒙

2022-04-24 15:17:56

鴻蒙操作系統

2022-01-25 17:05:44

ArkUI_eTS操作系統鴻蒙
點贊
收藏

51CTO技術棧公眾號

亚洲国产电影| 日韩高清在线免费观看| 中文字幕一区二区三区精华液| 成人午夜在线观看| 久久久久久久久久久97| 日韩欧美国产大片| 欧美日韩和欧美的一区二区| 无码人妻精品一区二区蜜桃网站| 日韩av视屏| 久草热8精品视频在线观看| 欧美高清视频在线播放| 亚洲国产天堂av| 日韩精品一区二区三区中文字幕| 国产香蕉一区二区三区| 中文字幕乱码亚洲无线精品一区| 肉色超薄丝袜脚交69xx图片| 日韩网址在线观看| 国产精品久久久久久无人区| 欧美特黄一区| 中文字幕欧美国内| 怡红院一区二区| 久久亚洲精品中文字幕| 午夜精品视频在线观看| 中文字幕中文字幕在线中一区高清| 视频一区 中文字幕| 韩日精品视频一区| 国产成人精品视频| 日本三级免费看| 91精品秘密在线观看| 亚洲色图av在线| 国产一线在线观看| 亚洲伦理久久| 欧美亚洲禁片免费| 国产二区视频在线播放| 调教一区二区| 一区免费观看视频| 日本一区美女| 欧美日韩在线中文字幕| 大胆亚洲人体视频| 91在线高清视频| 亚洲一线在线观看| 蜜桃视频在线观看一区| 琪琪第一精品导航| 天天综合天天干| 日韩午夜高潮| 久久久久女教师免费一区| 日韩三级久久久| 欧美成人直播| 日韩在线精品视频| 免费看一级黄色| 手机在线电影一区| 视频在线观看99| 欧美日韩生活片| 欧美日韩伦理| 这里只有视频精品| 亚洲色图第四色| 欧美在线观看视频一区| 在线视频亚洲欧美| 午夜精产品一区二区在线观看的| 中文精品一区二区| 亚洲美女av在线| 永久免费成人代码| 国产一区日韩| 深夜福利日韩在线看| 中国1级黄色片| 91综合久久| 麻豆成人在线看| 欧美成人综合色| 亚洲日本欧美| 国产成人久久久| 中文资源在线播放| 极品少妇xxxx精品少妇| 91久久精品国产91久久性色tv| a天堂视频在线| 成人在线视频一区| 鲁丝一区二区三区免费| 成人在线免费电影| 亚洲欧洲日产国码二区| 日韩精品久久一区二区| 超碰在线cao| 色94色欧美sute亚洲线路一ni | 日本精品三区| 色噜噜狠狠狠综合曰曰曰| 日韩一级片av| 在线一区免费观看| 国产精品免费久久久久影院| 国产乱人乱偷精品视频a人人澡| 国产在线国偷精品免费看| 国产精品v欧美精品∨日韩| 三级视频在线| 中文字幕日韩av资源站| 九九爱精品视频| 成人精品电影在线| 日韩三级在线观看| 永久免费看mv网站入口78| 日本久久黄色| 国内精品一区二区三区| 五月婷婷激情五月| 国产成人在线视频免费播放| 欧美日韩亚洲免费| 精品51国产黑色丝袜高跟鞋| 精品久久久久久久久久久久| 尤物国产在线观看| 日韩电影在线观看完整免费观看| 一区二区亚洲欧洲国产日韩| 黄色一级片在线免费观看| 久久亚洲国产精品一区二区| 91免费版网站入口| 国产三区四区在线观看| 夜夜精品浪潮av一区二区三区| 成年人在线看片| 伊人精品久久| 色小说视频一区| www.伊人久久| 懂色av一区二区在线播放| 午夜一区二区三视频在线观看| h片精品在线观看| 欧美日本一区二区在线观看| 99久久免费看精品国产一区| 91精品国产91久久久久久密臀| 日本久久精品视频| 日韩中文字幕免费在线观看| 国产精品久久久久久久久图文区| jizzjizzxxxx| 成人福利免费在线观看| 不卡av日日日| 亚洲天堂网在线观看视频| 久久综合九色综合97婷婷| www.夜夜爱| 国产精品伦一区二区| 亚洲人a成www在线影院| 一区二区三区视频免费看| 国产福利一区二区三区| 中文一区一区三区免费| 成人不卡视频| 亚洲午夜精品视频| 一级做a爰片久久毛片| 波多野结衣在线一区| 红桃一区二区三区| 不卡的国产精品| 日韩中文字幕第一页| 国产精品高清无码| 欧美经典三级视频一区二区三区| 噜噜噜久久亚洲精品国产品麻豆| 成人h动漫免费观看网站| 欧美伦理91i| 超碰在线人人干| 一区二区三区在线不卡| 黄色a级三级三级三级| 仙踪林久久久久久久999| 国产日韩精品一区二区| aaa在线观看| 欧美日韩日本视频| 91av手机在线| 韩国毛片一区二区三区| 只有这里有精品| 亚洲国产欧美国产第一区| 欧美另类第一页| 亚洲伦理在线观看| 性做久久久久久久免费看| 黄色免费视频网站| 999在线观看精品免费不卡网站| 国产欧美在线一区二区| 在线能看的av网址| 国产性猛交xxxx免费看久久| 小泽玛利亚一区二区三区视频| 亚洲国产高清aⅴ视频| www欧美激情| 婷婷综合视频| 成人自拍视频网站| 在线人成日本视频| 国产一区二区三区直播精品电影| 中文字幕无线码一区| 最新日韩av在线| 欧美xxxx日本和非洲| 国产欧美一级| 亚洲精品一区二区三| 日韩第一区第二区| 97色在线视频| 番号集在线观看| 日韩一区二区三区视频在线观看| 国产无遮挡又黄又爽在线观看| 97成人超碰视| 三上悠亚av一区二区三区| 91成人国产| 国内视频一区| 激情中国色综合| 久久久这里只有精品视频| 久久精品国产亚洲a∨麻豆| 欧美日韩国产综合视频在线观看 | 99热国内精品永久免费观看| 97人人模人人爽视频一区二区 | 国产在线精品一区免费香蕉| 人人澡人人添人人爽一区二区| 亚洲精品视频网上网址在线观看| 一级黄色片视频| 精品国产999| 日本爱爱小视频| 97超碰欧美中文字幕| 亚洲高清视频免费| 久久久天天操| 日本免费成人网| 日本欧美视频| 久久久一本精品99久久精品| 在线高清欧美| 欧美在线一级va免费观看| 黄色网址在线免费播放| 亚洲人成亚洲人成在线观看| 精品国精品国产自在久不卡| 欧美艳星brazzers| 好吊妞视频一区二区三区| 1000部国产精品成人观看| 亚洲一区二区观看| 国产尤物一区二区在线| 国产av无码专区亚洲精品| 国语精品一区| 自拍偷拍99| 国产一区二区精品福利地址| 国产精品一区二区三区免费 | 国内视频一区| 视频二区欧美| 91久久精品美女| 99久久综合国产精品二区| 欧美一区在线直播| a级片在线免费观看| 欧美大片在线看免费观看| 毛片免费不卡| 中文字幕亚洲欧美日韩2019| 久草在线网址| 日韩av在线网| 无码精品在线观看| 精品成人一区二区三区四区| 99精品国产99久久久久久97| 欧美人与z0zoxxxx视频| 波多野结衣黄色网址| 狠狠躁夜夜躁人人爽超碰91| 日本三级理论片| 亚洲v中文字幕| 国产精品变态另类虐交| 亚洲午夜国产一区99re久久| 国模无码国产精品视频| 亚洲精品一二三| 久久久久久久久久网站| 亚洲精品日日夜夜| 国产女人18水真多毛片18精品| 亚洲欧美综合色| 亚洲欧美精品aaaaaa片| 亚洲视频一区在线| 国产精品久久久精品四季影院| 亚洲欧美乱综合| 亚洲色婷婷一区二区三区| 亚洲一级二级三级在线免费观看| 久久久久性色av无码一区二区| 亚洲精品国产无套在线观| 91视频免费在线看| 亚洲国产成人av| 日韩免费不卡视频| 欧美性xxxxxxxxx| 亚洲天堂男人av| 欧美性一级生活| 国产又粗又长又黄| 日韩精品一区在线观看| 女人18毛片一区二区三区| 日韩av综合网| 国产在线视频网址| 中文字幕在线日韩| 超碰porn在线| 久久久久久久影院| 一级毛片久久久| 国产免费一区二区三区香蕉精| 亚洲精品一区av| 国产欧美一区二区视频| 国产探花在线精品| 激情五月五月婷婷| 亚洲国产片色| 午夜免费福利在线| 国产99精品视频| 国产精品揄拍100视频| 国产精品国产精品国产专区不蜜| av激情在线观看| 精品女同一区二区三区在线播放| 高潮毛片又色又爽免费| 777色狠狠一区二区三区| 亚洲女人18毛片水真多| 亚洲色图25p| 影音先锋在线播放| 日韩av手机在线观看| 国产美女视频一区二区| 牛人盗摄一区二区三区视频| 99久久婷婷| 免费毛片小视频| 国产在线一区观看| 亚洲午夜久久久久久久久红桃| 国产精品久久久久aaaa| 日韩成人一区二区三区| 欧美日韩国产美女| 亚洲色图21p| 久久精品亚洲一区| 欧美大片1688| 国产精品乱码视频| 99久久久久久中文字幕一区| 日本久久久精品视频| 国产剧情在线观看一区二区| 亚洲AV无码片久久精品| 一区二区在线观看视频| 中文字幕福利视频| 日韩av一区在线| 在线观看小视频| 国产欧美日韩精品丝袜高跟鞋| 精品中国亚洲| 午夜久久久久久久久久久| 日韩一区精品视频| 欧美大喷水吹潮合集在线观看| 中文字幕一区二区三区在线播放 | 亚洲精品美女视频| h视频在线免费观看| 国产精品久久久久久久久| 国内视频在线精品| 亚洲色图都市激情| 美女一区二区视频| 日本xxxxxxxxx18| 欧美日韩国内自拍| www.五月激情| 久久天天躁狠狠躁夜夜躁| 日韩中文在线播放| 裸模一区二区三区免费| 亚洲精品专区| 国产日韩视频一区| 亚洲欧美一区二区三区久本道91| 国产在线一级片| 亚洲天堂视频在线观看| 忘忧草在线日韩www影院| 国产成人精品福利一区二区三区| 欧美a级在线| 午夜激情视频网| 综合色中文字幕| 国产精品无码在线播放| www.亚洲男人天堂| 伊人久久大香伊蕉在人线观看热v| 日韩电影在线播放| 首页国产欧美日韩丝袜| 一级黄色片大全| 91久久精品一区二区二区| 蜜桃视频在线观看网站| 日韩av观看网址| 国产日产精品_国产精品毛片| 久久无码高潮喷水| 久久久久久影视| 国产精品熟女视频| 在线播放国产精品| 成人午夜在线| 日韩最新中文字幕| 国产乱码精品一品二品| 免费视频网站www| 精品国产乱码久久久久久夜甘婷婷| 欧美四级在线| 精品日本一区二区三区在线观看| 日韩一级欧洲| 久久久久久国产免费a片| 欧美系列亚洲系列| 麻豆av在线免费看| 97久久人人超碰caoprom欧美| 欧美精品国产一区二区| 在线免费看黄色片| 色综合久久中文字幕| 成年女人的天堂在线| 91丨九色丨国产在线| 欧美日韩网站| 亚洲av无码一区二区三区网址| 欧美性生交xxxxx久久久| 国产午夜精品一区理论片| 成人免费观看网址| 欧美精品三级| 三级电影在线看| 欧美日韩在线播放三区| 中文在线手机av| 国产一区二区不卡视频| 日韩精品一区第一页| 麻豆天美蜜桃91| 亚洲成人精品视频| 欧美性理论片在线观看片免费| 老司机av福利| 99精品国产一区二区三区不卡| 亚洲欧美日韩一区二区三区四区| 久久久91精品国产一区不卡| 精品在线网站观看| 在线观看免费不卡av| 午夜伊人狠狠久久| 香蕉视频在线播放| 国产精品中出一区二区三区| 日韩高清不卡一区二区三区| 成人免费视频网站入口::| 日韩精品在线视频| 国内不卡的一区二区三区中文字幕| 奇米影视亚洲色图| 国产精品三级av| 香蕉视频黄色片| 成人免费网站在线| 奶水喷射视频一区| 久久久久久久久艹|