blur 1.0.0
blur: ^1.0.0 copied to clipboard
Blur is a wrapper widget that blur it's child. There are ImageBlur.asset and ImageBlur.network that blur the image. Frost is another wrapper which blurs the background.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:blur/blur.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Blur Wrapper widget',
theme: ThemeData(
primaryColor: Colors.blueAccent,
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: MyHomePage(title: 'Blur Wrapper widget'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
double blurValue = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Padding(
padding: EdgeInsets.all(8.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
ImageBlur.asset(
'assets/cat.webp',
scale: 2.5,
blur: blurValue,
blurColor: Theme.of(context).primaryColor,
borderRadius: BorderRadius.vertical(top: Radius.circular(20)),
),
ImageBlur.asset(
'assets/cat.webp',
colorOpacity: 0.2,
scale: 2.5,
borderRadius: BorderRadius.vertical(bottom: Radius.circular(20)),
blur: blurValue,
overlay: Text(
'Cat',
style: Theme.of(context)
.textTheme
.headline2
.copyWith(color: Theme.of(context).scaffoldBackgroundColor),
),
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Stack(
alignment: Alignment.center,
children: [
Image.asset(
'assets/cat.webp',
scale: 3.5,
),
Frost(
blur: blurValue,
borderRadius: BorderRadius.circular(20),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
'Frost',
style: Theme.of(context).textTheme.headline4,
),
),
),
],
),
Blur(
blur: blurValue,
blurColor: Theme.of(context).primaryColor,
child: Padding(
padding: EdgeInsets.all(8.0),
child: Text(
'Blur',
style: Theme.of(context).textTheme.headline3,
),
),
),
],
),
Slider(
value: blurValue,
max: 20,
onChanged: (double value) {
setState(() {
blurValue = value;
});
},
)
],
),
),
);
}
}