Flutter阴影覆盖插件shadow_overlay的使用

发布于 1周前 作者 zlyuanteng 来自 Flutter

Flutter阴影覆盖插件shadow_overlay的使用

shadow_overlay 是一个用于在图片或小部件上显示渐变阴影的Flutter包。它可以使您的图像或小部件与背景融合,增加美观度。

特性

该包非常直观,它会在您的图像或小部件上添加默认为白色的阴影,使它们更加美观并与背景相融合。

示例1 <--------> 示例2

开始使用

无需任何特殊要求,该包完全用Dart编写,可以在任何平台上运行。

使用方法

下面是一个简单的使用示例:

ShadowOverlay(
    child: Image.asset(
        'path to your image',
         height: 400,
         width:800,
    ),
    shadowWidth: 800,
    shadowHeight: 150,
);

完整示例Demo

以下是完整的示例代码,展示了如何在Flutter应用中使用shadow_overlay包:

import 'package:flutter/material.dart';
import 'package:shadow_overlay/shadow_overlay.dart';

void main(List<String> args) {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      // 可以根据需要更改主题以适应叠加效果
      themeMode: ThemeMode.light,
      darkTheme: ThemeData.dark(),
      theme: ThemeData.light(),
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    final _isDark = Theme.of(context).brightness == Brightness.dark;
    return Scaffold(
      backgroundColor: _isDark ? Colors.black : Colors.white,
      body: Center(
        child: ShadowOverlay(
          shadowHeight: 150,
          shadowWidth: 400,
          shadowColor: _isDark ? Colors.black : Colors.white,
          child: Image.network(
            'https://raw.githubusercontent.com/afzl-wtu/shadow_overlay/main/resources/sample2.png',
            fit: BoxFit.cover,
            height: 400,
            width: 400,
          ),
        ),
      ),
    );
  }
}

额外信息

文档也包含在代码中,您可以通过将鼠标悬停在ShadowOverlay对象的属性上来查找更多选项。

标签

Gradient Transparency, Transparent Gradient, Transparent Image, Image Transparency, Transparent Widget, Transparent overlay, Transparency overlay, Transparent Shadow, Gradient Shadow, Gradual Transparency, Color overlay over image, transparency effect over image

通过这个插件,您可以轻松地为您的Flutter应用中的图片或小部件添加漂亮的阴影效果,提升用户体验。


更多关于Flutter阴影覆盖插件shadow_overlay的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter阴影覆盖插件shadow_overlay的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter应用中使用shadow_overlay插件的一个示例。shadow_overlay插件允许你在Flutter应用中轻松地为Widget添加阴影效果。

首先,确保你已经在pubspec.yaml文件中添加了shadow_overlay依赖项:

dependencies:
  flutter:
    sdk: flutter
  shadow_overlay: ^latest_version  # 请替换为最新版本号

然后运行flutter pub get来获取依赖项。

接下来,你可以在你的Flutter应用中使用ShadowOverlay来添加阴影效果。以下是一个完整的示例代码:

import 'package:flutter/material.dart';
import 'package:shadow_overlay/shadow_overlay.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Shadow Overlay Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Shadow Overlay Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            // 使用ShadowOverlay包裹一个Container
            ShadowOverlay(
              color: Colors.black.withOpacity(0.3),  // 阴影颜色
              offset: Offset(2, 2),                 // 阴影偏移
              blurRadius: 10.0,                      // 阴影模糊半径
              spreadRadius: 2.0,                     // 阴影扩展半径
              child: Container(
                width: 200,
                height: 200,
                color: Colors.blue,
                child: Center(
                  child: Text(
                    'Shadowed Box',
                    style: TextStyle(color: Colors.white),
                  ),
                ),
              ),
            ),
            SizedBox(height: 20),
            // 使用ShadowOverlay包裹一个Text
            ShadowOverlay(
              color: Colors.black.withOpacity(0.5),
              offset: Offset(1, 1),
              blurRadius: 5.0,
              spreadRadius: 1.0,
              child: Text(
                'Shadowed Text',
                style: TextStyle(
                  fontSize: 24,
                  color: Colors.red,
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,并在MyHomePage中使用了ShadowOverlay包裹了两个Widget:一个Container和一个Text。通过调整ShadowOverlay的参数,你可以控制阴影的颜色、偏移、模糊半径和扩展半径。

  • color:阴影的颜色。
  • offset:阴影的偏移量。
  • blurRadius:阴影的模糊半径。
  • spreadRadius:阴影的扩展半径。

你可以根据需要调整这些参数,以实现你想要的阴影效果。

回到顶部