Flutter UUID转换为HSL颜色插件uuid_to_hsl的使用
Flutter UUID转换为HSL颜色插件uuid_to_hsl的使用
这个包可以为给定的UUID v4生成一个颜色。给定相同的UUID,生成的颜色始终相同。
它通过从UUID中获取两个字节来在HSL颜色空间中生成一个随机的色调值,从而生成一个颜色。
getColorFromUuid
方法返回一个 Color
对象。
如果你想修改返回颜色的其他HSL值,你可以使用 getHSLColorFromUUID
方法。
示例用法:
color: UuidToHsl.getHSLColorFromUUID(_uuid, 0.7, 0.8, 0.9).toColor()
这将返回一个颜色对象,其透明度为0.7,饱和度为0.8,亮度为0.9,并且对于给定的UUID生成一个随机的色调值。
color: UuidToHsl.getColorFromUUID(_uuid)
这将返回一个颜色对象,其色调由UUID生成,并且使用默认的透明度0.9,饱和度0.9和亮度0.35。
它应该返回一个相当均匀的分布。例如,生成300个颜色的结果:
完整示例代码
import 'package:flutter/material.dart';
import 'package:uuid/uuid.dart';
import 'package:uuid_to_hsl/uuid_to_hsl.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
String _uuid = Uuid().v4();
void _incrementCounter() {
setState(() {
_counter++;
_uuid = Uuid().v4();
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text(
'Generated uuid is:',
),
Text(
'$_uuid',
style: Theme.of(context).textTheme.headlineSmall!.copyWith(
color: UuidToHsl.getHSLColorFromUUID(_uuid, 1.0, 1.0, 1.0).toColor(),
),
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
backgroundColor: UuidToHsl.getColorFromUUID(_uuid),
),
);
}
}
更多关于Flutter UUID转换为HSL颜色插件uuid_to_hsl的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter UUID转换为HSL颜色插件uuid_to_hsl的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
uuid_to_hsl
是一个 Flutter 插件,用于将 UUID 转换为 HSL(色相、饱和度、亮度)颜色。这个插件可以用于根据 UUID 生成唯一的颜色,通常用于需要在 UI 中为不同的对象分配唯一颜色的场景。
安装插件
首先,你需要在 pubspec.yaml
文件中添加 uuid_to_hsl
插件的依赖:
dependencies:
flutter:
sdk: flutter
uuid_to_hsl: ^1.0.0 # 请检查最新版本
然后运行 flutter pub get
来安装插件。
使用插件
安装完成后,你可以在代码中使用 uuid_to_hsl
插件将 UUID 转换为 HSL 颜色。
import 'package:flutter/material.dart';
import 'package:uuid/uuid.dart';
import 'package:uuid_to_hsl/uuid_to_hsl.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('UUID to HSL Example'),
),
body: Center(
child: UUIDToHSLExample(),
),
),
);
}
}
class UUIDToHSLExample extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
// 生成一个 UUID
var uuid = Uuid().v4();
// 将 UUID 转换为 HSL 颜色
HSLColor hslColor = UUIDToHSL.uuidToHSL(uuid);
// 将 HSL 颜色转换为 Flutter 的 Color 对象
Color color = hslColor.toColor();
return Container(
width: 200,
height: 200,
color: color,
child: Center(
child: Text(
'UUID: $uuid',
style: TextStyle(color: Colors.white),
),
),
);
}
}