Flutter图像模糊效果插件flutter_blur_shower的使用
Flutter图像模糊效果插件flutter_blur_shower的使用
flutter_blur_shower
A Flutter package to apply Gaussian blur to the background of dialogs, popups, and modalBottomSheets.
特性
- 对对话框背景应用高斯模糊。
- 对模态底部面板背景应用高斯模糊。
- 简单易用的API。
安装
在 pubspec.yaml
文件中添加 flutter_blur_shower
依赖:
dependencies:
flutter_blur_shower: ^0.1.0
然后运行 flutter pub get
来安装包。
使用
初始化
在使用模糊效果之前,使用 FlutterBlurShower
进行初始化,设置所需的模糊强度和背景颜色:
FlutterBlurShower.init(
sigma: 10.0,
backgroundColor: Colors.black.withOpacity(0.5),
);
显示模糊对话框
要显示一个带有模糊背景的对话框,可以使用 showBlurDialog
:
import 'package:flutter/material.dart';
import 'package:flutter_blur_shower/flutter_blur_shower.dart';
void _showDialog(BuildContext context) {
showBlurDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Blur Dialog'),
content: Text('This is a dialog with a blurred background.'),
actions: [
TextButton(
child: Text('Close'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
}
显示模糊模态底部面板
要显示一个带有模糊背景的模态底部面板,可以使用 showBlurModalBottomSheet
:
import 'package:flutter/material.dart';
import 'package:flutter_blur_shower/flutter_blur_shower.dart';
void _showModalBottomSheet(BuildContext context) {
showBlurModalBottomSheet(
context: context,
builder: (BuildContext context) {
return Container(
height: 200,
child: Center(
child: Text('This is a modal bottom sheet with a blurred background.'),
),
);
},
);
}
API 参考
FlutterBlurShower
-
FlutterBlurShower.init({required double sigma, required Color backgroundColor})
使用给定的
sigma
(模糊强度)和backgroundColor
初始化FlutterBlurShower
。 -
FlutterBlurShower.instance
FlutterBlurShower
的单例实例。 -
double get sigma
返回模糊强度值。
-
Color get backgroundColor
返回背景颜色。
示例
以下是一个完整的示例,演示如何使用 flutter_blur_shower
:
import 'package:flutter/material.dart';
import 'package:flutter_blur_shower/flutter_blur_shower.dart';
void main() {
FlutterBlurShower.init(
sigma: 10.0,
backgroundColor: Colors.black.withOpacity(0.5),
);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Blur Shower Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
child: const Text('Show Blur Dialog'),
onPressed: () => _showDialog(context),
),
ElevatedButton(
child: const Text('Show Blur Modal Bottom Sheet'),
onPressed: () => _showModalBottomSheet(context),
),
],
),
),
),
);
}
void _showDialog(BuildContext context) {
showBlurDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('Blur Dialog'),
content: const Text('This is a dialog with a blurred background.'),
actions: [
TextButton(
child: const Text('Close'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
}
void _showModalBottomSheet(BuildContext context) {
showBlurModalBottomSheet(
context: context,
builder: (BuildContext context) {
return const SizedBox(
height: 200,
child: Center(
child: Text('This is a modal bottom sheet with a blurred background.'),
),
);
},
);
}
}
更多关于Flutter图像模糊效果插件flutter_blur_shower的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter图像模糊效果插件flutter_blur_shower的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter应用中使用flutter_blur_shower
插件来实现图像模糊效果的代码示例。
首先,确保你的pubspec.yaml
文件中已经添加了flutter_blur_shower
依赖:
dependencies:
flutter:
sdk: flutter
flutter_blur_shower: ^x.y.z # 请将x.y.z替换为当前最新版本号
然后,运行flutter pub get
来获取依赖。
接下来,在你的Dart文件中使用flutter_blur_shower
。下面是一个完整的示例,展示如何在Flutter应用中实现图像模糊效果:
import 'package:flutter/material.dart';
import 'package:flutter_blur_shower/flutter_blur_shower.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Flutter Blur Shower Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Image.network(
'https://via.placeholder.com/600x400',
width: 300,
height: 200,
),
SizedBox(height: 20),
BlurShower(
imageUrl: 'https://via.placeholder.com/600x400',
width: 300,
height: 200,
blur: 20, // 模糊强度,数值越大越模糊
blurType: BlurType.light, // 模糊类型,可以是light或heavy
child: Container(
color: Colors.black.withOpacity(0.3), // 覆盖层颜色及透明度
),
),
],
),
),
),
);
}
}
在这个示例中,我们做了以下几件事:
-
导入必要的包:导入
flutter/material.dart
和flutter_blur_shower/flutter_blur_shower.dart
。 -
定义主应用:在
MyApp
中,我们创建了一个简单的MaterialApp
,并在其home
属性中设置了一个Scaffold
。 -
添加原始图像:使用
Image.network
从网络加载一个图像,并设置其宽度和高度。 -
添加模糊效果的图像:使用
BlurShower
组件,该组件接受图像URL、宽度、高度、模糊强度(blur
)和模糊类型(blurType
)等参数。BlurType
可以是light
或heavy
,表示不同的模糊效果。child
参数是一个覆盖在模糊图像上的容器,可以自定义其颜色和透明度。
请注意,BlurShower
组件内部实际上是通过一些渲染技巧来实现模糊效果的,因此它可能需要一些时间来完成图像的加载和模糊处理,特别是在图像较大或网络较慢的情况下。
此外,由于flutter_blur_shower
是一个第三方库,其API可能会随着版本的更新而发生变化,因此请确保查阅最新的文档以获取最准确的信息。