SpinKit

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.
Subscribe to my newsletter
Read articles from 桃花镇童长老 directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
