Flutter色彩提取插件dooadex_palette的使用
Flutter色彩提取插件dooadex_palette的使用
特性
- 提供多种颜色选择器和调色板功能。
- 支持从图像中提取主要颜色。
开始使用
在使用此插件之前,请确保已在pubspec.yaml
文件中添加依赖项。以下是如何添加的示例:
dependencies:
dooadex_palette: ^版本号
然后运行flutter pub get
以安装依赖项。
使用
首先,我们需要导入插件并创建一个基本的应用程序结构。以下是完整的示例代码:
import 'package:dooadex_palette/dooadex_palette.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Dooadex Package Test App',
theme: ThemeData(
primarySwatch: MaterialColor(DdxColor.primaryMaterialColor.colorHex,
DdxColor.primaryMaterialColor.swatch),
),
home: const MyHomePage(title: 'Dooadex Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
children: [
Container(
width: 20,
height: 20,
color: DdxColor.primary,
),
Container(
width: 20,
height: 20,
color: DdxColor.secondary,
),
Container(
width: 20,
height: 20,
color: DdxColor.tertiary,
),
Spacer(),
Container(
width: 20,
height: 20,
color: DdxColor.pinkLavender,
),
Container(
width: 20,
height: 20,
color: DdxColor.lilac,
),
Container(
width: 20,
height: 20,
color: DdxColor.bilobaFlower,
),
Container(
width: 20,
height: 20,
color: DdxColor.veryPeri,
),
Container(
width: 20,
height: 20,
color: DdxColor.purpleMountainMajesty,
),
Container(
width: 20,
height: 20,
color: DdxColor.royalPurple,
),
Container(
width: 20,
height: 20,
color: DdxColor.deepPurple,
),
Container(
width: 20,
height: 20,
color: DdxColor.tyrianPurple,
),
Container(
width: 20,
height: 20,
color: DdxColor.mahoganyRed,
),
Container(
width: 20,
height: 20,
color: DdxColor.carmine,
),
Container(
width: 20,
height: 20,
color: DdxColor.oldLavender,
),
Container(
width: 20,
height: 20,
color: DdxColor.grey,
),
],
),
),
Text("NotoSansKR 노토산스", style: NotoSansKR.thin(fontSize: 20)),
Text("NotoSansKR 노토산스", style: NotoSansKR.light(fontSize: 20)),
Text("NotoSansKR 노토산스", style: NotoSansKR.regular(fontSize: 20)),
Text("NotoSansKR 노토산스", style: NotoSansKR.medium(fontSize: 20)),
Text("NotoSansKR 노토산스", style: NotoSansKR.bold(fontSize: 20)),
Text("NotoSansKR 노토산스", style: NotoSansKR.black(fontSize: 20)),
Text("Roboto 로보토", style: Roboto.thin(fontSize: 20)),
Text("Roboto 로보토", style: Roboto.light(fontSize: 20)),
Text("Roboto 로보토", style: Roboto.regular(fontSize: 20)),
Text("Roboto 로보토", style: Roboto.medium(fontSize: 20)),
Text("Roboto 로보토", style: Roboto.bold(fontSize: 20)),
Text("Roboto 로보토", style: Roboto.black(fontSize: 20)),
Text("SFPro 샌프란시스코프로", style: SFPro.thin(fontSize: 20)),
Text("SFPro 샌프란시스코프로", style: SFPro.light(fontSize: 20)),
Text("SFPro 샌프란시스코프로", style: SFPro.regular(fontSize: 20)),
Text("SFPro 샌프란시스코프로", style: SFPro.medium(fontSize: 20)),
Text("SFPro 샌프란시스코프로", style: SFPro.bold(fontSize: 20)),
Text("SFPro 샌프란시스코프로", style: SFPro.black(fontSize: 20)),
Text(
"Google 구글",
style: M3Typo.headlineMedium,
),
Text(
"Google 구글",
style: Roboto.regular(fontSize: 28),
),
Text(
"Apple 애플",
style: HIGTypo.title1,
),
Text(
"Apple 애플",
style: SFPro.regular(fontSize: 28),
),
],
),
),
);
}
}
说明
- 在
MyApp
类中,我们设置了应用的主题颜色。 MyHomePage
类包含一个包含多个颜色块的行,这些颜色块是从预定义的颜色变量中获取的。- 文本样式使用了不同的字体和粗细,展示了如何使用不同的文本样式。
额外信息
更多详细信息和高级用法,请参阅官方文档或查看源代码。
更多关于Flutter色彩提取插件dooadex_palette的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter色彩提取插件dooadex_palette的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
dooadex_palette
是一个 Flutter 插件,用于从图像中提取主要颜色。它可以帮助你根据图像的颜色生成调色板,从而在应用中实现更一致的设计。以下是使用 dooadex_palette
插件的基本步骤:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 dooadex_palette
插件的依赖:
dependencies:
flutter:
sdk: flutter
dooadex_palette: ^1.0.0 # 请确保使用最新版本
然后运行 flutter pub get
来获取依赖。
2. 导入包
在需要使用 dooadex_palette
的文件中导入包:
import 'package:dooadex_palette/dooadex_palette.dart';
3. 加载图像并提取颜色
你可以使用 ImagePalette
从图像中提取颜色。以下是一个简单的示例,展示如何从网络图像中提取颜色:
import 'package:flutter/material.dart';
import 'package:dooadex_palette/dooadex_palette.dart';
class PaletteExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Color Palette Example'),
),
body: Center(
child: FutureBuilder(
future: _loadImagePalette(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
} else if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
} else {
final palette = snapshot.data as ImagePalette;
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
width: 200,
height: 200,
decoration: BoxDecoration(
image: DecorationImage(
image: NetworkImage('https://example.com/image.jpg'),
fit: BoxFit.cover,
),
),
),
SizedBox(height: 20),
Text('Dominant Color: ${palette.dominantColor}'),
Text('Vibrant Color: ${palette.vibrantColor}'),
Text('Muted Color: ${palette.mutedColor}'),
Text('Light Vibrant Color: ${palette.lightVibrantColor}'),
Text('Dark Vibrant Color: ${palette.darkVibrantColor}'),
],
);
}
},
),
),
);
}
Future<ImagePalette> _loadImagePalette() async {
final imageProvider = NetworkImage('https://example.com/image.jpg');
return await ImagePalette.fromImageProvider(imageProvider);
}
}
4. 运行应用
将 PaletteExample
作为你的应用的根组件,然后运行应用。应用会从指定的网络图像中提取颜色,并显示在界面上。
5. 处理本地图像
如果你想从本地图像中提取颜色,可以使用 AssetImage
或 FileImage
:
final imageProvider = AssetImage('assets/image.png');
// 或者
final imageProvider = FileImage(File('path/to/image.jpg'));
final palette = await ImagePalette.fromImageProvider(imageProvider);