SpinKit(API12)
🏆Introduction and Recommendations
SpinKit is a loading animation library for OpenHarmony/HarmonyOS.
harmony-utils A HarmonyOS tool library with rich features and extremely easy to use, with the help of many practical tools, is committed to helping developers quickly build Hongmeng applications.
harmony-dialog An extremely simple and easy-to-use zero-invasion pop-up window, which can be easily implemented with just one line of code, and can be easily popped up no matter where you are.
📚Download and install
ohpm i @pura/spinkit
OpenHarmony ohpm
For more information, please refer to如何安装 OpenHarmony ohpm 包
📚Result Picture
The renderings are slightly stumbled, please run the source code or add dependencies to view the effect.
📚SpinKit Component
Properties | Introduction |
---|---|
spinType | Animation type |
spinSize | Animation size, default 60 |
spinColor | Animation color, default white |
SpinKit() SpinKit({ spinType: SpinType.spinA }) SpinKit({ spinType: SpinType.spinH }) SpinKit({ spinType: SpinType.spinA, spinColor: Color.Pink, spinSize: 70 })
Please move the loading boxharmony-dialog
Full Code Example
import { SpinKit, SpinType } from '@pura/spinkit'; import { ComposeTitleBar } from '@kit.ArkUI'; import { ClickUtil, ToastUtil } from '@pura/harmony-utils'; import { DialogHelper } from '@pura/harmony-dialog'; @Entry @Component struct Index { private scroller: Scroller = new Scroller(); aboutToAppear(): void { } build() { Column() { ComposeTitleBar({ title: $r('app.string.spin_kit'), subtitle: $r('app.string.spinKit_desc'), }) Divider() Scroll(this.scroller) { Column({ space: 15 }) { Button('加载框样式配置1') .fontFamily('MyFont') .width('100%') .backgroundColor(Color.Grey) .shadow(ShadowStyle.OUTER_DEFAULT_MD) .onClick(() => { DialogHelper.setDefaultConfig((config) => { config.loading_loadType = SpinType.spinZ; //动画类型 config.loading_loadSize = 60; //加载动画或进度条的大小 config.loading_loadColor = "#0A51E0"; //加载动画或进度条的颜色 config.loading_content = ''; //加载动画的提示文字 config.loading_fontSize = 16; //文字大小 config.loading_fontColor = Color.White; //文字颜色 config.loading_backgroundColor = '#CC000000'; //背景颜色,八位色值前两位为透明度 config.loading_borderRadius = 10; //背景圆角 config.loading_marginTop = 20; //文字与动画的间距 config.loading_padding = 30; //padding }) ToastUtil.showToast("样式配置成功!"); }) Button('加载框样式配置2') .fontFamily('MyFont') .width('100%') .backgroundColor(Color.Grey) .shadow(ShadowStyle.OUTER_DEFAULT_MD) .onClick(() => { DialogHelper.setDefaultConfig((config) => { config.loading_loadType = SpinType.spinH; //动画类型 config.loading_loadSize = 70; //加载动画或进度条的大小 config.loading_loadColor = Color.Brown; //加载动画或进度条的颜色 config.loading_content = '努力加载中'; //加载动画的提示文字 config.loading_fontSize = 16; //文字大小 config.loading_fontColor = Color.White; //文字颜色 config.loading_backgroundColor = '#EE000000'; //背景颜色,八位色值前两位为透明度 config.loading_borderRadius = 12; //背景圆角 config.loading_marginTop = 20; //文字与动画的间距 config.loading_padding = { top: 35, right: 45, bottom: 30, left: 45 }; //padding }) ToastUtil.showToast("样式配置成功!"); }) Button('加载框,样式一') .fontFamily('MyFont') .width('100%') .fontColor($r('app.color.color_main')) .backgroundColor($r('app.color.card_background')) .shadow(ShadowStyle.OUTER_DEFAULT_MD) .onClick(() => { ClickUtil.throttle(() => { let dialogId = DialogHelper.showLoadingDialog({ autoCancel: false }) let timeoutID = setTimeout(() => { DialogHelper.closeDialog(dialogId); clearTimeout(timeoutID); }, 15000) }) }) Button('加载框,样式二') .fontFamily('MyFont') .width('100%') .fontColor($r('app.color.color_main')) .backgroundColor($r('app.color.card_background')) .shadow(ShadowStyle.OUTER_DEFAULT_MD) .onClick(() => { ClickUtil.throttle(() => { let dialogId = DialogHelper.showLoadingDialog({ loadType: SpinType.spinH, autoCancel: false, onDidDisappear: () => { ToastUtil.showToast("加载框关闭了") } }) let timeoutID = setTimeout(() => { DialogHelper.closeDialog(dialogId); clearTimeout(timeoutID); }, 15000) }) }) Button('加载框,样式三') .fontFamily('MyFont') .width('100%') .fontColor($r('app.color.color_main')) .backgroundColor($r('app.color.card_background')) .shadow(ShadowStyle.OUTER_DEFAULT_MD) .onClick(() => { ClickUtil.throttle(() => { DialogHelper.showLoadingDialog({ loadType: SpinType.spinK, loadColor: '#0A66F9', backgroundColor: '#CC000000', maskColor: '#10000000' }) }) }) Button('加载框,样式四') .fontFamily('MyFont') .width('100%') .fontColor($r('app.color.color_main')) .backgroundColor($r('app.color.card_background')) .shadow(ShadowStyle.OUTER_DEFAULT_MD) .onClick(() => { ClickUtil.throttle(() => { DialogHelper.showLoadingDialog({ loadType: SpinType.spinB, loadColor: Color.White, autoCancel: true }) }) }) Button('加载框,样式五') .fontFamily('MyFont') .width('100%') .fontColor($r('app.color.color_main')) .backgroundColor($r('app.color.card_background')) .shadow(ShadowStyle.OUTER_DEFAULT_MD) .onClick(() => { ClickUtil.throttle(() => { DialogHelper.showLoadingDialog({ loadType: SpinType.spinP, loadColor: Color.White, loadSize: 70, content: '加载中...', fontSize: 18, fontColor: Color.White, backgroundColor: '#BB000000', maskColor: '#33000000', padding: { top: 30, right: 50, bottom: 30, left: 50 }, marginTop: 20, autoCancel: true }) }) }) Button('加载框,样式六') .fontFamily('MyFont') .width('100%') .fontColor($r('app.color.color_main')) .backgroundColor($r('app.color.card_background')) .shadow(ShadowStyle.OUTER_DEFAULT_MD) .onClick(() => { ClickUtil.throttle(() => { //自定义文字和加载动画的颜色 DialogHelper.showLoadingDialog({ loadType: SpinType.spinD, content: "努力加载中", loadColor: Color.Red, backgroundColor: '#990000FF', fontColor: Color.Red, fontSize: 18, padding: 30, borderRadius: 10 }) }) }) Blank().layoutWeight(1) } .padding({ left: 15, right: 15 }) Divider() Grid() { GridItem() { SpinKit({ spinType: SpinType.spinA }) }.aspectRatio(1) .backgroundColor($r('app.color.color1')) GridItem() { SpinKit({ spinType: SpinType.spinB }) }.aspectRatio(1) .backgroundColor($r('app.color.color2')) GridItem() { SpinKit({ spinType: SpinType.spinC }) }.aspectRatio(1) .backgroundColor($r('app.color.color3')) GridItem() { SpinKit({ spinType: SpinType.spinD }) }.aspectRatio(1) .backgroundColor($r('app.color.color4')) GridItem() { SpinKit({ spinType: SpinType.spinE }) }.aspectRatio(1) .backgroundColor($r('app.color.color5')) GridItem() { SpinKit({ spinType: SpinType.spinF }) }.aspectRatio(1) .backgroundColor($r('app.color.color6')) GridItem() { SpinKit({ spinType: SpinType.spinG }) }.aspectRatio(1) .backgroundColor($r('app.color.color7')) GridItem() { SpinKit({ spinType: SpinType.spinH }) }.aspectRatio(1) .backgroundColor($r('app.color.color8')) GridItem() { SpinKit({ spinType: SpinType.spinI }) }.aspectRatio(1) .backgroundColor($r('app.color.color9')) GridItem() { SpinKit({ spinType: SpinType.spinJ }) }.aspectRatio(1) .backgroundColor($r('app.color.color10')) GridItem() { SpinKit({ spinType: SpinType.spinK }) }.aspectRatio(1) .backgroundColor($r('app.color.color11')) GridItem() { SpinKit({ spinType: SpinType.spinL }) }.aspectRatio(1) .backgroundColor($r('app.color.color12')) GridItem() { SpinKit({ spinType: SpinType.spinM }) }.aspectRatio(1) .backgroundColor($r('app.color.color13')) GridItem() { SpinKit({ spinType: SpinType.spinN }) }.aspectRatio(1) .backgroundColor($r('app.color.color14')) GridItem() { SpinKit({ spinType: SpinType.spinO }) }.aspectRatio(1) .backgroundColor($r('app.color.color15')) GridItem() { SpinKit({ spinType: SpinType.spinP }) }.aspectRatio(1) .backgroundColor($r('app.color.color14')) GridItem() { SpinKit({ spinType: SpinType.spinQ }) }.aspectRatio(1) .backgroundColor($r('app.color.color13')) GridItem() { SpinKit({ spinType: SpinType.spinR }) }.aspectRatio(1) .backgroundColor($r('app.color.color12')) GridItem() { SpinKit({ spinType: SpinType.spinS }) }.aspectRatio(1) .backgroundColor($r('app.color.color11')) GridItem() { SpinKit({ spinType: SpinType.spinT }) }.aspectRatio(1) .backgroundColor($r('app.color.color10')) GridItem() { SpinKit({ spinType: SpinType.spinU }) }.aspectRatio(1) .backgroundColor($r('app.color.color9')) GridItem() { SpinKit({ spinType: SpinType.spinV }) }.aspectRatio(1) .backgroundColor($r('app.color.color8')) GridItem() { SpinKit({ spinType: SpinType.spinW }) }.aspectRatio(1) .backgroundColor($r('app.color.color7')) GridItem() { SpinKit({ spinType: SpinType.spinX }) }.aspectRatio(1) .backgroundColor($r('app.color.color6')) GridItem() { SpinKit({ spinType: SpinType.spinY }) }.aspectRatio(1) .backgroundColor($r('app.color.color5')) GridItem() { SpinKit({ spinType: SpinType.spinZ }) }.aspectRatio(1) .backgroundColor($r('app.color.color4')) } .rowsTemplate('1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr') .columnsTemplate('1fr 1fr 1fr') .columnsGap(0) .rowsGap(0) .width('100%') .aspectRatio(3 / 9) } .layoutWeight(1) } .width('100%') .height('100%') .backgroundColor(Color.White) } }
💖 Communication and communication 🙏
Any problems found during use can be askedIssueGive us;
Of course, we also welcome you to send us a messagePR 。
https://gitee.com/tongyuyan/harmony-utils
https://github.com/787107497
🌏Open Source Protocol
This project is based onApache License 2.0, when copying and borrowing codes, please be sure to indicate the source.
Top comments (0)