精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

免费影院在线观看一区| 自拍视频国产精品| 久草热视频在线观看| 蜜桃av中文字幕| 免费亚洲一区| 色诱女教师一区二区三区| 日韩在线一区视频| 久草在线资源站资源站| 久久综合久色欧美综合狠狠| 国产精品流白浆视频| 中文字幕五月天| 久久久久久毛片免费看| 欧美三级在线看| 国产天堂视频在线观看| 国产午夜在线视频| 国产成人在线观看免费网站| 日本久久久久久久久| 91porn在线视频| 男男gay无套免费视频欧美| 欧美日韩精品一区二区三区| 成人免费在线网| 18视频免费网址在线观看| 国产成人综合亚洲网站| 国产精品v片在线观看不卡| 波多野结衣爱爱视频| 久久97视频| 日韩精品影音先锋| 天天干天天干天天干天天干天天干| a在线免费观看| porn视频在线观看| 精品久久久亚洲| 精品国产91久久久久久久妲己| 蜜臀av午夜一区二区三区| 九色91在线| 国产精品盗摄一区二区三区| 久久精品国产99精品国产亚洲性色| 91亚洲视频在线观看| 老鸭窝亚洲一区二区三区| 欧美日本黄视频| 美国精品一区二区| 亚洲制服欧美另类| 欧美精品一区二区三区视频| 一级做a爱视频| 成入视频在线观看| 亚洲欧美日韩系列| 亚洲一区综合| www.av在线播放| 久久久久久夜精品精品免费| 粉嫩av四季av绯色av第一区 | 一区二区在线观看免费| 日韩精品另类天天更新| 九色网友自拍视频手机在线| 99久久免费视频.com| 国产99视频精品免费视频36| 国产www视频| 91欧美日韩在线| 成人女性视频| 日韩丝袜美女视频| 天美一区二区三区| 国产美女视频一区二区| 91精品国产综合久久精品性色| 天堂社区在线视频| 亚洲精品一区三区三区在线观看| 日韩欧美在线字幕| 中文字幕乱码人妻综合二区三区| 成人免费观看在线观看| 亚洲不卡在线观看| 福利视频一二区| 九色porny视频在线观看| 亚洲成国产人片在线观看| 蜜臀精品一区二区| 日韩激情电影免费看| 精品国产999| 免费在线观看的av网站| 国产精品粉嫩| 欧美三片在线视频观看 | 美女视频黄 久久| 国产精品自在线| 91亚洲精品国偷拍自产在线观看 | 亚洲精品你懂的| 一区二区三区一级片| 麻豆电影在线播放| 亚洲午夜久久久久| 欧美性xxxxxxxxx| 久久婷婷开心| 精品欧美不卡一区二区在线观看| 久久天天做天天爱综合色| 欧洲视频一区二区三区| 理论片午午伦夜理片在线播放| 亚洲品质自拍视频| 无码人妻精品一区二区蜜桃网站| 国产乱码精品一区二三赶尸艳谈| 色综合久久88色综合天天| 亚洲国产日韩欧美在线观看| 奇米一区二区| 亚洲男人天堂久| 战狼4完整免费观看在线播放版| 香蕉国产精品| 国内精品久久久久久影视8| 国产精品一区无码| 精品写真视频在线观看| 国产高清在线一区| 福利在线观看| 亚洲午夜成aⅴ人片| 欧美日韩在线不卡视频| 经典三级久久| 亚洲欧美精品一区二区| 久久国产精品国语对白| 亚洲欧美日韩视频二区| 成人性教育视频在线观看| 天天干天天草天天射| 国产精品视频第一区| 免费在线观看视频a| 国产a亚洲精品| 亚洲国产精品va| 午夜黄色福利视频| 国产精品久久久久毛片大屁完整版| 国产精品福利在线观看网址| 日韩一卡二卡在线| 亚洲免费色视频| 999精品视频在线| 欧美爱爱网站| 九九九久久久久久| 在线观看视频中文字幕| 91在线porny国产在线看| 艳母动漫在线观看| 在线成人视屏| 精品无人区太爽高潮在线播放 | www.97av| 国产精品三级久久久久三级| 日韩欧美国产免费| 成人另类视频| 欧美成人激情在线| 中文无码av一区二区三区| 99久久99久久免费精品蜜臀| 女人床在线观看| vam成人资源在线观看| 在线精品国产欧美| 国产精品久久久久久久久久精爆| 成人一级片网址| 日本道在线视频| 岛国一区二区| 在线成人激情视频| 欧美视频xxxx| 亚洲国产精品v| 日本精品久久久久中文字幕| 日韩最新在线| 68精品国产免费久久久久久婷婷| 高h调教冰块play男男双性文| 亚洲人成影院在线观看| 欧美一级小视频| 91麻豆精品国产91久久久平台| 国产美女被下药99| 亚洲麻豆精品| 欧美日韩精品一区二区三区四区| a级黄色免费视频| 奇米精品一区二区三区在线观看| 日本视频精品一区| 欧美亚洲韩国| 一区二区三区视频免费| 中文字幕日日夜夜| 国产精品久久久久久久久晋中 | 日韩久久精品成人| 久久不卡免费视频| 93久久精品日日躁夜夜躁欧美| 免费看又黄又无码的网站| 性欧美xxxx免费岛国不卡电影| 91国产精品91| 狠狠v欧美ⅴ日韩v亚洲v大胸 | 久久久久国产一区二区三区四区 | 欧美成人精品3d动漫h| 久草视频在线免费看| 成人aa视频在线观看| 国产精品沙发午睡系列| 欧美先锋资源| 亚洲影院色无极综合| 欧美人与禽性xxxxx杂性| 亚洲精品720p| 日韩 国产 欧美| 欧美韩日一区二区三区四区| av在线网址导航| 欧美三区在线| 久久免费视频1| 成人在线视频免费| 欧美成人性色生活仑片| 四虎精品一区二区三区| 一本久道中文字幕精品亚洲嫩| 美国一级黄色录像| 日本xxxxxwwwww| 一本色道久久综合一区| 日韩欧美手机在线| 成人污污www网站免费丝瓜| 久久久久久久久久久网站| 日韩二区三区| 欧美日韩夫妻久久| 在线看成人av| 国产精品水嫩水嫩| 不卡的一区二区| 免费亚洲视频| 4444亚洲人成无码网在线观看| 精品久久ai电影| 国产精品一区二区三区成人| 不卡av免费观看| 中文字幕亚洲欧美日韩在线不卡| 性一交一乱一伧老太| 一本色道综合亚洲| 欧美片一区二区| 久久夜色精品一区| 超碰在线超碰在线| 亚洲欧美久久久| 日本成人在线不卡| 精品国产一区二区三区久久久樱花| 147欧美人体大胆444| 久久野战av| 国模精品系列视频| 黄色片网站在线观看| 国产视频丨精品|在线观看| 国产a级免费视频| 91久久免费观看| 黄色小视频在线免费看| 国产精品二三区| 97人妻精品一区二区三区免| 国产一区二区三区免费看 | 久久精品美女| 精品一区二区三区中文字幕 | 天天操天天干视频| 亚洲精品视频在线观看网站| 成年人看的免费视频| www国产亚洲精品久久麻豆| 国产又粗又猛又爽又黄| 免费高清视频精品| 毛片av免费在线观看| 国产精品久久国产愉拍| 免费超爽大片黄| 午夜精品久久| 成年人黄色在线观看| 久久激情电影| 亚洲精品高清视频| 精品国产91| 日本亚洲欧洲精品| 亚洲素人在线| 久久精品久久精品国产大片| 精品国产影院| 精品无码久久久久久久动漫| 91精品久久久久久综合五月天| 91九色国产在线| 亚洲一区av| 国产一区二区丝袜高跟鞋图片| 在线成人视屏| 国产精品欧美一区二区三区奶水| 国产亚洲一区二区手机在线观看 | 韩日精品一区| 日韩美女在线播放| 秋霞国产精品| 国产精品美女免费视频| 成人久久网站| 国产欧美日韩中文字幕在线| 亚洲高清影院| 亚洲专区在线视频| 97人人澡人人爽91综合色| 91九色在线免费视频| 婷婷综合国产| 国产精品久久久久久久久婷婷 | 久久精品国产亚洲高清剧情介绍| 欧美成人黄色网址| 紧缚捆绑精品一区二区| 人人爽人人爽av| 国产一区啦啦啦在线观看| 日韩欧美色视频| 成人午夜看片网址| 在线观看av中文字幕| 久久精品视频网| 国产精品av久久久久久无| 国产精品精品国产色婷婷| 天天操夜夜操av| 伊人色综合久久天天人手人婷| 国产极品在线播放| 日韩欧美国产视频| 91成人国产综合久久精品| 51午夜精品国产| 天堂av资源在线| 亚洲性生活视频在线观看| aaa在线免费观看| 欧美精品手机在线| 国产三级电影在线播放| 国产精品白嫩美女在线观看| 99综合99| 精品免费视频123区| 欧美伦理在线视频| 国产精品视频网站在线观看| 99热免费精品在线观看| av在线网址导航| 9久草视频在线视频精品| 少妇久久久久久久久久| 亚洲精选一二三| 少妇高潮av久久久久久| 6080yy午夜一二三区久久| 色欲av伊人久久大香线蕉影院| 亚洲性生活视频| 91www在线| 国产日韩在线观看av| 久久亚洲黄色| 色香蕉在线观看| 久久精品1区| 久久久久无码国产精品一区李宗瑞| 久久久不卡网国产精品一区| 91在线播放观看| 欧美色图片你懂的| 天天干天天干天天干| 久久国产精品久久久久| 日韩欧美看国产| 国产女人水真多18毛片18精品| 日韩成人a**站| 国产中文字幕免费观看| 精品一区二区三区久久| 精品成人av一区二区三区| 亚洲激情自拍视频| 一区二区的视频| 亚洲欧美日韩一区在线| 岛国av在线网站| 91精品国产一区二区三区动漫 | 国产成人午夜视频| 一本色道久久88| 色综合色综合色综合| 日本美女一级片| 久久91精品国产91久久久| 国产成人a视频高清在线观看| 久久综合九色99| 亚洲国产一区二区三区a毛片| 国产黑丝在线视频| 国产精品女主播av| 波多野结衣一区二区在线 | 欲求不满的岳中文字幕| 一区二区在线观看av| 一级黄色片在线| 中文字幕日韩电影| 欧美三区四区| 日本一区网站| 久热精品在线| 欧美图片第一页| 色综合久久中文综合久久97| 天天干免费视频| 欧美性受xxxx白人性爽| 欧美美女在线直播| 国产精品久久中文字幕| 大桥未久av一区二区三区中文| 久久国产在线观看| 日韩欧美国产高清| 日本性爱视频在线观看| 超碰97在线播放| 国产精品www.| 无码人妻精品一区二区三| 一区二区三区中文字幕精品精品| 精品人妻一区二区三区日产乱码 | 日韩av电影免费观看| 久久亚洲精品伦理| 亚洲综合欧美综合| 欧美色欧美亚洲另类二区| 色网站在线看| 成人午夜在线影院| 国产精品v一区二区三区| 大尺度在线观看| 欧美日韩国产丝袜另类| 日本电影一区二区在线观看 | 国产美女视频一区二区| 成人毛片100部免费看| 国产69精品久久久久777| 国产无码精品在线播放| 国产婷婷色综合av蜜臀av| 久久人体大尺度| 伊人色综合影院| 国产乱色国产精品免费视频| 久久高清免费视频| 国产午夜精品一区二区三区| 久久69成人| bt天堂新版中文在线地址| 91小视频在线| 国产精品国产精品国产| 久久国产精品首页| 国产精品中文字幕制服诱惑| 免费在线观看日韩视频| 国产精品久久久久久久久免费丝袜 | 国产欧美精品xxxx另类| 欧美日韩亚洲一区| 欧美bbbbb性bbbbb视频| 欧美日韩精品一区二区在线播放 | 性欧美在线看片a免费观看| 精品国产一区探花在线观看| 久久婷婷中文字幕| 黄色成人在线播放| 欧美性videos| 国产日韩一区二区三区| 青青国产91久久久久久| 欧美色图亚洲视频| 亚洲性猛交xxxxwww| 午夜视频在线观看精品中文| 能在线观看的av网站| 一区二区三区四区激情| 国产午夜视频在线观看| 99久久伊人精品影院|