@nativescript/animated-circle
在 NativeScript 应用程序中实现动画圆形进度。
npm i --save @nativescript/animated-circle

@nativescript/animated-circle

一个插件,可在 iOS 和 Android 上创建圆形进度条。

Android animated circle demo video iOS animated circle demo video
Android iOS

内容

安装

npm install @nativescript/animated-circle

使用 @nativescript/animated-circle

核心

  1. 使用页面的 xmlns 属性注册插件命名空间,提供你的前缀(例如 ui)。
<Page xmlns:ui="@nativescript/animated-circle">
  1. 通过前缀访问 AnimatedCircle 视图。
<ui:AnimatedCircle ... />

核心

<Page xmlns="http://schemas.nativescript.org/tns.xsd"
xmlns:ui="@nativescript/animated-circle">


<ui:AnimatedCircle
backgroundColor="transparent"
width="200"
height="200"
animated="true"
animateFrom="0"
rimColor="#FF5722"
barColor="#3D8FF4"
fillColor="#eee"
clockwise="true"
rimWidth="5"
progress="{{ circleProgress }}"
text="{{ circleProgress + '%'}}"
textSize="28"
textColor="red" />

</Page>

Angular

  1. NativeScriptAnimatedCircleModule 添加到想要使用视图的模块导入中。
import { NativeScriptAnimatedCircleModule } from '@nativescript/animated-circle/angular';
imports: [NativeScriptAnimatedCircleModule];
  1. 在 HTML 中使用视图。
<AnimatedCircle backgroundColor="transparent" width="200" height="200" animated="true" animateFrom="0" rimColor="#fff000" barColor="#ff4081" rimWidth="25" [progress]="circleProgress" [text]="progress + '%'" textSize="22" textColor="#336699"></AnimatedCircle>

Vue

  1. app.ts 文件中注册视图。
import { registerElement } from 'nativescript-vue';

registerElement("AnimatedCircle", ()=> require("@nativescript/animated-circle").AnimatedCircle)
  1. .vue 文件中使用视图。
<AnimatedCircle
backgroundColor="transparent"
width="200"
height="200"
animated="true"
animateFrom="0"
rimColor="#FF5722"
barColor="#3D8FF4"
fillColor="#eee"
clockwise="true"
rimWidth="5"
:progress="progress"
:text="progress + '%'"
textSize="28"
textColor="red" />

Svelte

  1. app.ts 文件中注册插件的视图。
import {registerNativeViewElement} from "svelte-native/dom"

registerNativeViewElement("animatedCircle", ()=> require("@nativescript/animated-circle").AnimatedCircle)
  1. 在标记中使用视图。
<animatedCircle 
backgroundColor="transparent"
width="200"
height="200"
animated="true"
animateFrom="0"
rimColor="#C4BF55"
barColor="#000"
clockwise="true"
rimWidth="20"
progress={ circleProgress }
text="80%"
textSize="28"
textColor="red"
/>

React

  1. app.ts 文件中注册插件的视图。
interface AnimatedCircleAttributes extends ViewAttributes {
progress?: number
animated?: boolean
animateFrom?: number
text?: string
textSize? : number
textColor?: string
rimColor? : string
barColor?: string
rimWidth?: number
clockwise?: boolean
}

declare global {
module JSX {
interface IntrinsicElements {

animatedCircle: NativeScriptProps<AnimatedCircleAttributes, AnimatedCircle>
}
}
}

registerElement("animatedCircle", ()=> require("@nativescript/animated-circle").AnimatedCircle)
  1. 在标记中使用视图。
<stackLayout marginTop={30}>
<animatedCircle
backgroundColor="transparent"
width={200}
height={200}
animated={true}
animateFrom={0}
rimColor="#000"
barColor="#C4BF55"
clockwise={true}
rimWidth={20}
progress={this.state.progress}
text={this.state.progress + '%'}
textSize={28}
textColor="#000"
/>

</stackLayout>

API 参考

属性 类型 默认值 描述
rimColor 颜色 #FF5722 圆形边框填充部分的颜色。
barColor 颜色 #3D8FF4 剩余(未填充)的圆形边框。
rimWidth 数字 5 圆形的边框半径。
progress 数字 0 当前进度值。
startAngle 数字 0 开始绘制的角度。
endAngle 数字 100 iOS 仅 绘制停止时的结束角度。
animated 布尔值 false Android 仅 动画状态。
animateFrom 数字 0 Android 仅 动画起始的进度值。
animationDuration 数字 1000 Android 仅 动画持续时间。
text 字符串 "" 圆形内的文本。
textSize 数字 0 文本大小,0 将隐藏文本
textColor 颜色 #ff0000 文本颜色

许可

Apache 许可证版本 2.0