Flutter 高斯模糊效果詳解

1.高斯模糊不限定大小

1.1-代碼封裝

import 'dart:ui';
/// describe
/// 高斯模糊效果合集
/// created by hujintao
/// created at 2019-09-12
//
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:fpdxapp/utils/screen.dart';

/// 矩形高斯模糊效果
class BlurRectWidget extends StatefulWidget {
  final Widget child;

  /// 模糊值
  final double sigmaX;
  final double sigmaY;

  /// 透明度
  final double opacity;

  /// 外邊距
  final EdgeInsetsGeometry blurMargin;

  /// 圓角
  final BorderRadius borderRadius;

  const BlurRectWidget({
    Key key,
    this.child,
    this.sigmaX,
    this.sigmaY,
    this.opacity,
    this.blurMargin,
    this.borderRadius,
  }) : super(key: key);

  @override
  _BlurRectWidgetState createState() => _BlurRectWidgetState();
}

class _BlurRectWidgetState extends State<BlurRectWidget> {
  @override
  Widget build(BuildContext context) {
    return Container(
      margin: widget.blurMargin != null
          ? widget.blurMargin
          : EdgeInsets.only(bottom: ScreenUtil().setHeight(20)),
      child: ClipRRect(
        borderRadius: widget.borderRadius == null ? BorderRadius.only(
            topLeft: Radius.circular(10), topRight: Radius.circular(10)) : widget.borderRadius,
        child: BackdropFilter(
          filter: ImageFilter.blur(
            sigmaX: this.widget.sigmaX != null ? this.widget.sigmaX : 10,
            sigmaY: this.widget.sigmaY != null ? this.widget.sigmaY : 10,
          ),
          child: Container(
            color: Colors.white10,
            child: this.widget.opacity != null
                ? Opacity(
                    opacity: widget.opacity,
                    child: this.widget.child,
                  )
                : this.widget.child,
          ),
        ),
      ),
    );
  }
}

1.2 使用

Stack(
  overflow: Overflow.clip,
  alignment: Alignment(-1, 1),
  children: <Widget>[
    // 背景圖片
    Container(
      decoration: BoxDecoration(
          color: Color(0xffF3F4F5),
          borderRadius: BorderRadius.only(
            topLeft: Radius.circular(10.0),
            topRight: Radius.circular(10.0),
          ),
          image: DecorationImage(
              image: NetworkImage(getBackgroundImage(item)),
              fit: BoxFit.cover) //設(shè)置圖片的填充模式
          ),
      margin: EdgeInsets.only(bottom: ScreenUtil().setHeight(20)),
    ),
    // 矩形高斯模糊效果
    BlurRectWidget(
      child: Container(),
      sigmaY: alpha,
      sigmaX: alpha,
    ), 
    ],
)

1.3 效果圖

image.png

2.高斯模糊限定容器大小

關(guān)鍵代碼

// 頭像
  Stack(
    alignment: Alignment.center,
    children: <Widget>[
      // 頭像
      Container(
        width: ScreenUtil().setWidth(90),
        height: ScreenUtil().setWidth(90),
        decoration: BoxDecoration(
            color: Colors.blue,
            borderRadius: BorderRadius.circular(
                ScreenUtil().setWidth(45)),
            image: DecorationImage(
              alignment: Alignment.center,
              image: NetworkImage(
                item != null && item.user.headimgurl != null
                    ? item.user.headimgurl
                    : '',
              ),
            )),
      ),
      // 高斯模糊
      Stack(
        children: <Widget>[
          Center(
            child: ClipOval(
              child: BackdropFilter(
                filter: ImageFilter.blur(
                  sigmaX: alpha,
                  sigmaY: alpha,
                ),
                child: Container(
                  alignment: Alignment.center,
                  width: ScreenUtil().setWidth(90),
                  height: ScreenUtil().setWidth(90),
                  child: Text(
                    '   ',
                    style: TextStyle(fontSize: 20),
                  ),
                  color: Colors.white10,
                ),
              ),
            ),
          ),
        ],
      )
    ],
  ),

效果圖

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末碳默,一起剝皮案震驚了整個濱河市济赎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖冈爹,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件花枫,死亡現(xiàn)場離奇詭異粱玲,居然都是意外死亡躬翁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門查乒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弥喉,“玉大人,你說我怎么就攤上這事玛迄∮删常” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵憔晒,是天一觀的道長藻肄。 經(jīng)常有香客問我,道長拒担,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任攻询,我火速辦了婚禮从撼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钧栖。我一直安慰自己低零,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布拯杠。 她就那樣靜靜地躺著掏婶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪潭陪。 梳的紋絲不亂的頭發(fā)上雄妥,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天最蕾,我揣著相機(jī)與錄音,去河邊找鬼老厌。 笑死瘟则,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的枝秤。 我是一名探鬼主播醋拧,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼淀弹!你這毒婦竟也來了丹壕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤薇溃,失蹤者是張志新(化名)和其女友劉穎雀费,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痊焊,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盏袄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了薄啥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辕羽。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖垄惧,靈堂內(nèi)的尸體忽然破棺而出刁愿,到底是詐尸還是另有隱情,我是刑警寧澤到逊,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布铣口,位于F島的核電站,受9級特大地震影響觉壶,放射性物質(zhì)發(fā)生泄漏脑题。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一铜靶、第九天 我趴在偏房一處隱蔽的房頂上張望叔遂。 院中可真熱鬧,春花似錦争剿、人聲如沸已艰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哩掺。三九已至,卻和暖如春涩笤,著一層夾襖步出監(jiān)牢的瞬間嚼吞,已是汗流浹背盒件。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留誊薄,地道東北人履恩。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像呢蔫,于是被迫代替她去往敵國和親切心。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)自http://www.reibang.com/p/02da487a2f43 近年來片吊,圖片高斯模糊備受設(shè)計師的...
    龐哈哈哈12138閱讀 2,831評論 1 23
  • 近年來绽昏,圖片高斯模糊備受設(shè)計師的青睞,在各大知名APP中俏脊,如微信全谤、手機(jī)QQ、網(wǎng)易云音樂等等都有對背景高斯圖模糊的設(shè)...
    依然范特稀西閱讀 45,614評論 19 203
  • 第十章將談到相互利他行為這個重要概念爷贫,即“于人方便认然,于己方便”的原則 動物之所以要聚居在一起,肯定是因?yàn)樗麄兊幕?..
    happyday2333閱讀 457評論 0 3
  • 線程、進(jìn)程 1.iOS中的多線程操作腾务、多線程方式毕骡? 2.多線程的優(yōu)點(diǎn)和缺點(diǎn)分別是什么? 答:優(yōu)點(diǎn):1岩瘦、將耗時較長的...
    丶逐漸閱讀 1,368評論 0 8
  • 雨中獨(dú)行 2014-7-4 11:48 又傳來那對夫妻吵架聲未巫,忽高忽低,忽大忽小启昧,歇斯底里叙凡,發(fā)泄著積怨已久的憤怒和不滿。
    夕陽在山閱讀 105評論 0 0