8.7 版本发布—WinterCG 兼容性第 1 部分
了解更多

在 GitHub 上查看

@nativescript/animated-circle

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

Android animated circle demo videoiOS animated circle demo video
AndroidiOS

内容

安装

cli
npm install @nativescript/animated-circle

使用 @nativescript/animated-circle

核心

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

核心

xml
<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 添加到要使用该视图的模块导入中。
typescript
import { NativeScriptAnimatedCircleModule } from '@nativescript/animated-circle/angular'
imports: [NativeScriptAnimatedCircleModule]
  1. 在 HTML 中使用该视图。
xml
<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 文件中注册该视图。
ts
import { registerElement } from 'nativescript-vue'

registerElement(
  'AnimatedCircle',
  () => require('@nativescript/animated-circle').AnimatedCircle
)
  1. .vue 文件中使用该视图。
xml
<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 文件中注册该插件的视图。
ts
import { registerNativeViewElement } from 'svelte-native/dom'

registerNativeViewElement(
  'animatedCircle',
  () => require('@nativescript/animated-circle').AnimatedCircle
)
  1. 在标记中使用该视图。
xml
<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 文件中注册该插件的视图。
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. 在标记中使用该视图。
xml
<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 版

上一页
入门