首頁 > 軟體

flutter實現磨砂玻璃效果範例詳解

2022-11-09 14:01:50

flutter 中實現磨砂玻璃效果

磨砂玻璃效果是一個很酷的使用者介面概念,使我們的使用者介面看起來更有吸引力。它基本上是一個模糊的覆蓋與減少不透明度,以區分或減少某一觀點。這個功能看起來確實不錯,但是它會影響應用程式的效能。

那麼,讓我們看看如何在 Flutter 中實現磨砂玻璃效果。

編寫程式碼

通過使用 BackdroFilter () widget 和 ImageFilter 類,可以非常容易地在 Flutter 中實現它。用於模糊影象、 container 或許多其他 widget 。它可以在 iOS 和 android 上執行。它用於突出需要更多焦點的內容,模糊需要較少焦點的內容。

建立一個 container 並使用 BackdroFilter 和 ClipRect 將其包裝起來。現在新增背景濾鏡的屬性: ImageFilter.素,然後新增 sigmaX,sigmaY。SigmaX 和 sigmaY 越高,模糊度越高。

import 'dart:ui';
import 'package:flutter/material.dart';
class FrostedGlassLookDemo extends StatefulWidget {
  const FrostedGlassLookDemo({super.key});
  @override
  @override_FrostedGlassLookDemoState
  createState() => _FrostedGlassLookDemoState();
}
class _FrostedGlassLookDemoState extends State<FrostedGlassLookDemo> {
  @override
  @overrideWidget
  build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      appBar: AppBar(
        elevation: 1,
        centerTitle: true,
        title: const Text("Frosted Glass Look Demo"),
        backgroundColor: Colors.blueGrey,
      ),
      body: Stack(
        children: [
          Center(
              child: Container(
            height: MediaQuery.of(context).size.height / 3,
            width: MediaQuery.of(context).size.width / 1,
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(20.0),
            ),
            child: const FlutterLogo(),
          )),
          Center(
            child: ClipRect(
              child: BackdropFilter(
                filter: ImageFilter.blur(sigmaX: 10.0, sigmaY: 10.0),
                child: Container(
                  height: MediaQuery.of(context).size.height / 3,
                  width: MediaQuery.of(context).size.width / 1.5,
                  decoration: BoxDecoration(
                      borderRadius: BorderRadius.circular(20.0),
                      color: Colors.grey.shade200.withOpacity(0.5)),
                  child: const Center(
                      child: Text(
                    "Glass Effect Container",
                    style: TextStyle(fontSize: 15),
                  )),
                ),
              ),
            ),
          ),
        ],
      ),
    );
  }
}

輸出效果

注意: 我將這個 widget 塊堆疊在一個 Image 上方,以檢視工作效果。我用 Flutter 的標誌作為一個影象。現在,我們可以看到我們的影象模糊效果。

以上就是flutter實現磨砂玻璃效果範例詳解的詳細內容,更多關於flutter 磨砂玻璃的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com