• Flutter磨砂玻璃效果制作


    Flutter的Fliter Widget 也是非常强大的,它可以制作出你想要的神奇滤镜效果。下面制作一个毛玻璃效果。

    这个和以前的写法都一样,所以就直接贴代码了。

    import 'package:flutter/material.dart';
    import 'dart:ui';   //引入ui库,因为ImageFilter Widget在这个里边。
    
    void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title:'Flutter Demo',
          theme:ThemeData(
            primarySwatch: Colors.blue,
          ),
          home:Scaffold(
            body:FrostedGlassDemo(),
          )
        );
      }
    }
    
    class FrostedGlassDemo extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body:Stack(   //重叠的Stack Widget,实现重贴
            children: <Widget>[
              ConstrainedBox( //约束盒子组件,添加额外的限制条件到 child上。
                constraints: const BoxConstraints.expand(), //限制条件,可扩展的。
                child:Image.network('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1545738629147&di=22e12a65bbc6c4123ae5596e24dbc5d3&imgtype=0&src=http%3A%2F%2Fpic30.photophoto.cn%2F20140309%2F0034034413812339_b.jpg')
              ),
              Center(
                child: ClipRect(  //裁切长方形
                  child: BackdropFilter(   //背景滤镜器
                    filter: ImageFilter.blur(sigmaX: 5.0,sigmaY: 5.0), //图片模糊过滤,横向竖向都设置5.0
                    child: Opacity( //透明控件
                      opacity: 0.5,
                      child: Container(// 容器组件
                         500.0,
                        height: 500.0,
                        decoration: BoxDecoration(color:Colors.grey.shade200), //盒子装饰器,进行装饰,设置颜色为灰色
                        child: Center(
                          child: Text(
                            'JSPang',
                            style: Theme.of(context).textTheme.display3, //设置比较酷炫的字体
                          ),
                        ),
                      ),
                    ),
                  ),
                ),
              )
            ],
          )
        );
      }
    }

    这个代码嵌套很多,所以一定要注意你的代码层次,容易出错的地方就是嵌套错误。这个效果尽量少用,因为测试了一下,它对系统的消耗还是比较大的。

  • 相关阅读:
    Linux常用快捷键
    如何Oracle 数据库备份与恢复
    Linux常用命令解释
    转摘:商业智能BI的演绎型需求和归纳型需求BI三维框架之内容维研究
    PHP中const的使用
    PHP中define的使用
    Apache配置正向代理与反向代理
    正向代理
    JAVA System.getProperty()参数
    PHP查找当前URL文件扩展名
  • 原文地址:https://www.cnblogs.com/joe235/p/11232820.html
Copyright © 2020-2023  润新知