18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

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

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

鴻蒙上做一個(gè)loading加載動(dòng)畫

OpenHarmony技術(shù)社區(qū) ? 來(lái)源:OST開源開發(fā)者 ? 2023-04-17 10:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本篇文章介紹了如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的 loading 加載動(dòng)畫,并且在文末提供了一個(gè) demo 工程供讀者下載學(xué)習(xí)。

作為一個(gè) OpenHarmony 南向開發(fā)者,接觸北向應(yīng)用開發(fā)并不多。北向開發(fā) ArkUI 老是改來(lái)改去,對(duì)筆者這樣的入門選手來(lái)說(shuō)學(xué)習(xí)成本其實(shí)非常大,希望后面可以慢慢穩(wěn)定下來(lái)吧。

最近努力學(xué)習(xí)了一些,下面將學(xué)習(xí)經(jīng)驗(yàn)分享如下:

使用 ImageAnimator 幀動(dòng)畫組件實(shí)現(xiàn)一個(gè)自定義 loading 加載動(dòng)畫

使用 Progress 進(jìn)度條組件實(shí)現(xiàn) loading 加載動(dòng)畫。

筆者開發(fā)環(huán)境:(文末附有 demo ArkUI 應(yīng)用源碼,一定得是以下 IDE 和 SDK 版本或者更高版本才能編譯運(yùn)行,這也是坑點(diǎn)之一?。?!)

開發(fā)板:潤(rùn)和軟件 DAYU200 開發(fā)板

OpenHarmony 版本:OpenHarmony3.2 Beta5

IDE:DevEco Studio 3.1.0.200

SDK:API9(3.2.10.6)

效果演示:

30ef34d8-dc25-11ed-bfe3-dac502259ad0.gif

①涉及到的知識(shí)點(diǎn)

ImageAnimator 幀動(dòng)畫組件:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-imageanimator.md

Progress 進(jìn)度條組件:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-progress.md

CustomDialogController 自定義彈窗組件:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-methods-custom-dialog-box.md

定時(shí)器 API:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-timer.md

Row 組件,沿水平方向布局容器:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-row.md
OpenHarmony 組件導(dǎo)讀:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-components-summary.md

②使用 ImageAnimator 幀動(dòng)畫組件自定義 loading 動(dòng)畫開發(fā)步驟

代碼如下:

├──ets
│├──loading#loading動(dòng)畫圖片幀
│└──pages#ets代碼
│├──Index.ets
│├──loadingComponent_part1.ets
│├──loadingComponent_part2.ets#ImageAnimator幀動(dòng)畫組件實(shí)現(xiàn)自定義loading加載動(dòng)畫
│└──loadingComponent_part3.ets#Progress進(jìn)度條組件實(shí)現(xiàn)的loading加載動(dòng)畫

(1)將自定義的 loading 動(dòng)畫的圖片幀放在 ets 目錄下

組成自定義的 loading 動(dòng)畫的圖片幀,詳情請(qǐng)見(jiàn)文末提供的 demo 工程。

319fb0f6-dc25-11ed-bfe3-dac502259ad0.png

在 entrysrcmainets 新建一個(gè) loading 目錄,將其放在該目錄下:

31b21e76-dc25-11ed-bfe3-dac502259ad0.png

(2)用幀動(dòng)畫組件將動(dòng)畫封裝成一個(gè)自定義組件

ImageAnimator 幀動(dòng)畫組件:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-imageanimator.md
在 entrysrcmainetspages 下新建 .ets 文件:
//loadingComponent_part1.ets
@Component

exportdefaultstructloadingComponent_part1{
privateimageWidth:number|Resource=0
privateimageHeight:number|Resource=0

build(){
Column(){
ImageAnimator()
.images([
{
src:'/loading/loading01.png',
duration:200,//每一幀圖片的播放時(shí)長(zhǎng),單位毫秒
},
{
src:'/loading/loading02.png',
duration:200,
},
{
src:'/loading/loading03.png',
duration:200,
},
{
src:'/loading/loading04.png',
duration:200,
},
{
src:'/loading/loading05.png',
duration:200,
},
{
src:'/loading/loading06.png',
duration:200,
}])
.width(this.imageWidth)
.height(this.imageHeight)
.iterations(-1)
//設(shè)置播放順序。false表示從第1張圖片播放到最后1張圖片;true表示從最后1張圖片播放到第1張圖片。

.fixedSize(true)
//設(shè)置圖片大小是否固定為組件大小。true表示圖片大小與組件大小一致,此時(shí)設(shè)置圖片的width 、height 、top 和left屬性是無(wú)效的。false表示每一張圖片的width 、height 、top和left屬性都要單獨(dú)設(shè)置。

.reverse(true)
//設(shè)置播放順序。false表示從第1張圖片播放到最后1張圖片;true表示從最后1張圖片播放到第1張圖片。

.fillMode(FillMode.None)
//設(shè)置動(dòng)畫開始前和結(jié)束后的狀態(tài),可選值參見(jiàn)FillMode說(shuō)明

.state(AnimationStatus.Running)
//Running表示動(dòng)畫處于播放狀態(tài)
}
}
}

(3)在主頁(yè)面實(shí)現(xiàn)自定義的 loading 動(dòng)畫

首先導(dǎo)入自定義的 loading 動(dòng)畫:

importloading1from'./loadingComponent_part1';

使用 CustomDialogController 自定義彈窗組件自定義一個(gè)彈窗用于在主頁(yè)面實(shí)現(xiàn) loading 動(dòng)畫。

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-methods-custom-dialog-box.md

代碼如下:

structIndex{
//用來(lái)繪制loading動(dòng)畫的
//要打開在點(diǎn)擊事件中添加this.loading1.open();
//要關(guān)閉在點(diǎn)擊事件中添加this.loading1.close();
//通過(guò)CustomDialogController類顯示自定義彈窗。
privateloading1:CustomDialogController=newCustomDialogController({
builder:loadingProgress_part1(),
alignment:DialogAlignment.Center,
offset:({dx:0,dy:0}),
autoCancel:false,
customStyle:true
});
}

//用來(lái)繪制loading動(dòng)畫的
@CustomDialog
structloadingProgress_part1{
controller:CustomDialogController;

build(){
Column(){
loading1({imageWidth:80,
imageHeight:80}).margin({top:350})

}
.width('100%')
.height('100%')
.alignItems(HorizontalAlign.Center)
.backgroundColor(Color.White)
}

}

使用定時(shí)器 API 控制 loading 動(dòng)畫:

Button(this.message1)
.margin({top:100})
.fontWeight(FontWeight.Normal)
.backgroundColor(Color.Green)//設(shè)置按鈕顏色
.onClick(()=>{

//開始繪制loading動(dòng)畫
this.loading1.open();
//使用一個(gè)setTimeout定時(shí)器,setTimeout中第一個(gè)參數(shù)使用()=>{要執(zhí)行的函數(shù)}
//this.ocrDialog.close();是關(guān)閉loading動(dòng)畫
setTimeout(()=>{this.loading1.close();},3000);

})

實(shí)現(xiàn)效果:

31c36816-dc25-11ed-bfe3-dac502259ad0.gif

③使用 Progress 進(jìn)度條組件實(shí)現(xiàn) loading加載動(dòng)畫開發(fā)步驟

Progress 進(jìn)度條組件:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-progress.md

部分代碼如下:

structIndex{
@Statei:number=0

//aboutToAppear 函數(shù)在創(chuàng)建自定義組件的新實(shí)例后,在執(zhí)行其build函數(shù)之前執(zhí)行。
aboutToAppear(){
//定時(shí)器中的setInterval:重復(fù)調(diào)用一個(gè)函數(shù),在每次調(diào)用之間具有固定的時(shí)間延遲。
setInterval(()=>{this.i=this.i+10},300);
}

build(){
...

Progress({value:this.i,type:ProgressType.Linear})
.width(200)
.margin({top:30})

Progress({value:this.i,total:150,type:ProgressType.ScaleRing})
.color(Color.Green).value(this.i).width(50)
.margin({top:30})
.style({strokeWidth:15,scaleCount:15,scaleWidth:5})
...
}

}

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    6021

    瀏覽量

    110457
  • 開發(fā)環(huán)境
    +關(guān)注

    關(guān)注

    1

    文章

    244

    瀏覽量

    17445
  • SDK
    SDK
    +關(guān)注

    關(guān)注

    3

    文章

    1091

    瀏覽量

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

    關(guān)注

    60

    文章

    2742

    瀏覽量

    45089
  • OpenHarmony
    +關(guān)注

    關(guān)注

    31

    文章

    3894

    瀏覽量

    20405

原文標(biāo)題:鴻蒙上做一個(gè)loading加載動(dòng)畫

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    [OpenHarmony北向應(yīng)用開發(fā)] 做一個(gè) loading加載動(dòng)畫

    - 本篇文章介紹了如何實(shí)現(xiàn)個(gè)簡(jiǎn)單的loading加載動(dòng)畫,并且在提供了
    的頭像 發(fā)表于 04-20 11:29 ?2691次閱讀
    [OpenHarmony北向應(yīng)用開發(fā)] <b class='flag-5'>做一個(gè)</b> <b class='flag-5'>loading</b><b class='flag-5'>加載</b><b class='flag-5'>動(dòng)畫</b>

    【HarmonyOS】鴻蒙圖片加載工具匯總

    庫(kù)。Glide 的主要重點(diǎn)是使?jié)L動(dòng)任何類型的圖像列表盡可能平滑和快速,但 Glide 也適用于幾乎所有需要獲取、調(diào)整大小和顯示遠(yuǎn)程圖像的情況。2、鴻蒙圖片加載工具——frescoFresco 是
    發(fā)表于 03-25 13:51

    鴻蒙JS開發(fā)接口請(qǐng)求loading怎么解決?

    鴻蒙JS開發(fā)接口請(qǐng)求loading?
    發(fā)表于 05-10 10:24

    Android中的alpha動(dòng)畫是這個(gè)AlphaAnimation, 鴻蒙的alpha動(dòng)畫是哪一個(gè)

    Android中的alpha動(dòng)畫是這個(gè)AlphaAnimation,鴻蒙的alpha動(dòng)畫是哪一個(gè)
    發(fā)表于 06-15 10:29

    請(qǐng)問(wèn)鴻蒙hap包是否支持插件化開發(fā)?

    如題,安卓上可以使用dexclassloader機(jī)制動(dòng)態(tài)加載其他apk作為插件使用,鴻蒙上用類似的能力嗎?有什么解決方案呢?
    發(fā)表于 06-16 11:34

    鴻蒙上使用Python進(jìn)行物聯(lián)網(wǎng)編程

    炫耀!然而,這卻是非常重要的步:在鴻蒙上用使用 Python 進(jìn)行物聯(lián)網(wǎng)編程是可行的?。?! 既然可行,加上 Python 語(yǔ)言天生的優(yōu)勢(shì)(易于掌握,開發(fā)效率高),那么真的值得持續(xù)打造,將鴻蒙上的 Python 進(jìn)行到底。 所以
    的頭像 發(fā)表于 09-28 09:55 ?4899次閱讀
    在<b class='flag-5'>鴻蒙上</b>使用Python進(jìn)行物聯(lián)網(wǎng)編程

    如何用所學(xué)的鴻蒙知識(shí)做一個(gè)小應(yīng)用

    ?? 今時(shí)今日,不管是大人,還是小孩,都喜歡刷視頻,生活中刷視頻的 APP 也多得是,如:抖音,快手,視頻號(hào),今日頭條,火山…數(shù)也不數(shù)不清了。 ??? ? 然而華為論壇鴻蒙版塊搞活動(dòng),做一個(gè)屬于自己
    的頭像 發(fā)表于 10-19 09:23 ?2180次閱讀

    鴻蒙上安裝按鈕實(shí)現(xiàn)下載、暫停、取消、顯示等操作

    今天給大家分享在鴻蒙上一個(gè)按鈕實(shí)現(xiàn)下載、暫停、取消、顯示下載進(jìn)度操作。
    的頭像 發(fā)表于 01-04 14:32 ?2984次閱讀

    支持上拉加載和下拉刷新的鴻蒙版基礎(chǔ)控件教程

    介紹 這是個(gè)支持上拉加載和下拉刷新的鴻蒙版基礎(chǔ)控件,用于頁(yè)面數(shù)據(jù)刷新和加載 軟件架構(gòu) 軟件架構(gòu)說(shuō)明 使用
    發(fā)表于 03-29 13:35 ?0次下載

    視圖動(dòng)畫加載用法案例

    : 《 com 。github 。.jlmd _ 動(dòng)畫加載視圖。AnimatedCircleLoadingView ohos: id = “$+id:circle_loading_view” ohos
    發(fā)表于 03-31 09:06 ?1次下載

    個(gè)高仿新版的加載動(dòng)畫控件

    描述 個(gè)高仿新版58加載動(dòng)畫控件 集成 allprojects{ repositories{ mavenCentral() } } implementation ‘io.openha
    發(fā)表于 03-31 09:17 ?0次下載
    <b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>高仿新版的<b class='flag-5'>加載</b><b class='flag-5'>動(dòng)畫</b>控件

    用于openharmony和動(dòng)畫加載視圖控件

    描述 個(gè)簡(jiǎn)單的加載視圖,用于openharmony和動(dòng)畫。簡(jiǎn)單的帶有動(dòng)畫效果的加載控件。 依賴
    發(fā)表于 03-31 09:21 ?4次下載

    鴻蒙開發(fā)者使用的計(jì)數(shù)動(dòng)畫文本視圖

    該三方開源庫(kù)從github fork過(guò)來(lái),主要將底層接口調(diào)用的實(shí)現(xiàn)修改成鴻蒙接口的實(shí)現(xiàn),將三方庫(kù)鴻蒙化,供開發(fā)鴻蒙應(yīng)用的開發(fā)者使用。 計(jì)數(shù)動(dòng)畫文本視圖
    發(fā)表于 04-02 14:26 ?1次下載

    鴻蒙上實(shí)現(xiàn)“數(shù)字華容道”小游戲

    本篇文章教大家如何在鴻蒙上實(shí)現(xiàn)“數(shù)字華容道”小游戲。
    的頭像 發(fā)表于 12-26 09:52 ?1821次閱讀

    鴻蒙上開發(fā)“小蜜蜂”游戲

    小時(shí)候我們有個(gè)熟悉的游戲叫小蜜蜂。本文教大家在鴻蒙上學(xué)做這個(gè)小蜜蜂游戲。
    的頭像 發(fā)表于 04-03 11:27 ?2273次閱讀