Flutter渐变效果插件gradr_lib的使用

Flutter渐变效果插件gradr_lib的使用

转换攀岩评级系统,具有非常简单的接口。

Pub Version


开发中,请自行承担风险。

你是否曾经需要将一种评级系统转换为另一种?并且不得不自己实现这些计算?gradr_lib 提供了简单接口来转换攀岩评级系统,这样你就不用重新发明轮子。

该库最初是为了开发我创建的 Gradr 应用程序而设计的,但我觉得把它开源让社区使用并希望它能帮助改进它会很酷!

Gradr 尽可能理解不同评级系统之间的差异和不一致性,所以请注意,从一个评级系统转换到另一个可能不会总是准确。你可以查看这篇文档了解 Gradr 如何处理这种情况。如果你有任何建议或帮助,请随时提出!

功能

  • 评级系统
    • ✅ V-Scale
    • ✅ Font
    • ✅ French
    • ✅ YDS
    • ❌ 南非
    • ❌ 巴西
    • ❌ 英国
    • ❌ IRCRA
    • ❌ UIAA
    • ...
  • ✅ 在评级系统之间进行转换
  • ✅ 评级系统检测器

开始使用

要安装该包,请检查安装指南

使用方法

在评级系统之间转换

以下是一个如何将 V-Scale 转换为 Font Scale 以及反向转换的例子,使用 GradeCalculator:

final vToFont = GradeCalculator(
    systemA: verminGradeSystem,
    systemB: fontGradeSystem,
);

// 从评级系统 A(V-Scale)转换到评级系统 B(Font Scale) vToFont.atob( vScale.findByName(‘V3’) );

// > 6B

// 从评级系统 B(Font Scale)转换到评级系统 A(V-Scale) vToFont.btoa( fontScale.findByName(‘6B’) ); // > V3

你也可以使用 from-to 接口进行转换,如下所示:

fontGradeSystem.convert('v3').from(verminGradeSystem); // 6b
fontGradeSystem.convert('6b').to(verminGradeSystem);   // v3

检测评级系统

Gradr 还提供了一个工具来检测评级系统。

final detector = GradeSystemDetector(
    detectors: [
      VScaleGradeDetector(),
      FontGradeDetector(),
      FontGradeDetector(),
    ],
);

GradeDetectorResult detectedResult = detector.detect(grade);

// 返回可能的评级系统列表 detectedResult.detectedSystems;

// 返回格式化的等级(Gradr 等级类实例) detectedResult.formalizedGrades;

// 返回原始输入 detectedResult.originalInput;

  • 注意,GradeSystemDetector 允许你传递所需的检测器和/或自定义检测器。

需要其他平台的Gradr?

你可能会幸运地找到它,我们正在尝试为最常见的语言和框架提供库。看看是否有你需要的那个。

  • ✅ Dart
  • ❌ JavaScript
    • ❌ React
    • ❌ Angular
    • ❌ Ionic
    • ❌ Vue
  • ❌ Java
  • ❌ PHP

如果缺少你的平台或语言,请随时提交一个问题,我们将尝试实现它。或者,如果你愿意并且有时间,可以联系我们帮忙构建它,我们非常乐意! ❤️

额外信息

有一些示例可以在这里这里

如果你遇到任何问题或想要添加一个特性,请访问 GitHub 仓库 并提交一个 问题

支持项目

我倾向于开放源代码,并且乐于帮助那些可能需要帮助的人。

如果你正在使用该项目并且对此感到满意,或者只是想鼓励我继续创作,有几种方式可以做到:

  • 给项目点赞和分享 🚀
  • 报告错误 🐛
  • 发送反馈
  • 甚至参与编码 :P

感谢! ❤️


完整示例Demo

以下是完整的示例代码,展示了如何使用 gradr_lib 进行评级系统之间的转换和检测:

import 'package:example/routes/grade_system_converter.dart';
import 'package:example/routes/grade_system_detector.dart';
import 'package:example/routes/home.screen.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    var darkTheme = ThemeData.dark();

    return MaterialApp(
      title: 'Flutter Demo',
      theme: darkTheme.copyWith(
        appBarTheme: darkTheme.appBarTheme.copyWith(elevation: 0),
        primaryColor: Colors.amber,
        colorScheme: darkTheme.colorScheme.copyWith(
          primary: Colors.amber,
        ),
      ),
      routes: {
        'home': (ctx) => const HomeScreen(),
        'grade_system_detector': (ctx) => const GradeSystemDetectorScreen(),
        'grade_system_converter': (ctx) => const GradeSystemConverterScreen(),
      },
      initialRoute: 'home',
    );
  }
}

更多关于Flutter渐变效果插件gradr_lib的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter渐变效果插件gradr_lib的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


gradr_lib 是一个用于在 Flutter 中创建渐变效果的插件。它可以帮助你轻松地实现各种渐变效果,例如线性渐变、径向渐变等。以下是如何在 Flutter 项目中使用 gradr_lib 插件的步骤和示例。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 gradr_lib 依赖:

dependencies:
  flutter:
    sdk: flutter
  gradr_lib: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装依赖。

2. 导入库

在你的 Dart 文件中导入 gradr_lib

import 'package:gradr_lib/gradr_lib.dart';

3. 使用 Gradr 组件

gradr_lib 提供了一个 Gradr 组件,你可以使用它来创建渐变效果。以下是一些常见的用法示例:

线性渐变

Gradr.linear(
  colors: [Colors.red, Colors.blue],
  begin: Alignment.topLeft,
  end: Alignment.bottomRight,
  child: Center(
    child: Text(
      'Linear Gradient',
      style: TextStyle(color: Colors.white, fontSize: 24),
    ),
  ),
)

径向渐变

Gradr.radial(
  colors: [Colors.yellow, Colors.green],
  center: Alignment.center,
  radius: 0.5,
  child: Center(
    child: Text(
      'Radial Gradient',
      style: TextStyle(color: Colors.white, fontSize: 24),
    ),
  ),
)

扫描渐变

Gradr.sweep(
  colors: [Colors.purple, Colors.orange],
  center: Alignment.center,
  startAngle: 0.0,
  endAngle: 3.14,
  child: Center(
    child: Text(
      'Sweep Gradient',
      style: TextStyle(color: Colors.white, fontSize: 24),
    ),
  ),
)

4. 自定义渐变

你还可以通过 Gradr.custom 方法来创建自定义的渐变效果:

Gradr.custom(
  gradient: LinearGradient(
    colors: [Colors.red, Colors.blue],
    begin: Alignment.topLeft,
    end: Alignment.bottomRight,
  ),
  child: Center(
    child: Text(
      'Custom Gradient',
      style: TextStyle(color: Colors.white, fontSize: 24),
    ),
  ),
)

5. 渐变背景

你还可以将 Gradr 组件用作背景:

Scaffold(
  body: Gradr.linear(
    colors: [Colors.red, Colors.blue],
    begin: Alignment.topLeft,
    end: Alignment.bottomRight,
    child: Center(
      child: Text(
        'Gradient Background',
        style: TextStyle(color: Colors.white, fontSize: 24),
      ),
    ),
  ),
)
回到顶部