Flutter头像生成插件chow_avatar的使用

Flutter头像生成插件chow_avatar的使用

选择一个头像从未如此简单、完美或神奇。这是一个完整的头像包,你可以用于你的个人资料和头像。

包参数

参数名 描述 类型 默认值
name 用于创建首字母缩写。(正则表达式按r’\s+/'分割) String
size 头像大小(宽度=高度)。 double 80.0
image 头像图像源,仅与[child]一起使用。 ImageProvider
margin 头像边距。 EdgeInsetsGeometry
style 首字母文本样式。 TextStyle
statusColor 状态颜色。 Color
statusSize 状态大小。 double 12.0
statusAlignment 状态对齐方式。 Alignment Alignment.topRight
decoration 头像装饰。 BoxDecoration color, shape
foregroundDecoration 头像前景装饰。 BoxDecoration
child 子部件,仅与[image]一起使用。 Widget
children 托管的子部件。 Widget
animated 使用AnimatedContainer。 bool false
duration AnimatedContainer持续时间。 Duration Duration(milliseconds: 300)
autoTextSize 自动名称文本大小。 bool false

特别致谢

构建此包的灵感和指导来自flutter_advanced_avatar。
- @alexmelnyk.io

贡献者

特别感谢为本包做出贡献的人:
- Agbama Ulimhunyie
- Agbama Jnr

维护与设计工程师

完整示例代码

以下是一个完整的示例代码,展示了如何使用chow_avatar插件来生成不同样式的头像:

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

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

class MyApp extends StatefulWidget {
  [@override](/user/override)
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.light(useMaterial3: true),
      darkTheme: ThemeData.dark(useMaterial3: true),
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Chow Avatar Example'),
        ),
        body: Center(
          child: GridView.count(
            shrinkWrap: true,
            crossAxisCount: 3,
            children: [
              // 使用名字生成头像
              ChowAvatar(
                name: 'John Doe',
                statusColor: Colors.red,
              ),
              // 使用名字生成带状态的头像
              ChowAvatar(
                name: 'Brain Davies',
                statusColor: Colors.green,
                statusAlignment: Alignment.topRight,
              ),
              // 使用图标生成头像
              ChowAvatar(
                child: Icon(
                  Icons.account_circle,
                  color: Colors.white,
                  size: 40,
                ),
              ),
              // 设置头像大小
              ChowAvatar(
                name: 'AG Baby',
                statusColor: Colors.red,
                size: 40,
              ),
              // 带有状态的头像,设置大小和状态对齐方式
              ChowAvatar(
                name: 'Barrack Obama',
                statusColor: Colors.green,
                statusAlignment: Alignment.topRight,
                size: 80,
              ),
              // 带有图标的头像,设置大小和额外的子部件
              ChowAvatar(
                child: Icon(
                  Icons.account_circle,
                  color: Colors.white,
                  size: 40,
                ),
                size: 120,
                children: [
                  AlignCircular(
                    alignment: Alignment.topLeft,
                    size: Size.square(32),
                    child: GestureDetector(
                      onTap: () => print('Close Tap'),
                      child: Container(
                        width: 32,
                        height: 32,
                        decoration: BoxDecoration(
                          shape: BoxShape.circle,
                          color: Colors.red,
                        ),
                        foregroundDecoration: BoxDecoration(
                          shape: BoxShape.circle,
                          border: Border.fromBorderSide(
                            Divider.createBorderSide(context),
                          ),
                        ),
                        child: Icon(Icons.close),
                      ),
                    ),
                  )
                ],
              ),
              // 使用文字生成带有子部件的头像
              ChowAvatar(
                name: 'CMYK',
                children: [
                  Align(
                    alignment: Alignment.topLeft,
                    child: Container(
                      width: 16.0,
                      height: 16.0,
                      color: Colors.cyan,
                    ),
                  ),
                  Align(
                    alignment: Alignment.topRight,
                    child: Container(
                      width: 16.0,
                      height: 16.0,
                      color: Colors.pinkAccent,
                    ),
                  ),
                  Align(
                    alignment: Alignment.bottomLeft,
                    child: Container(
                      width: 16.0,
                      height: 16.0,
                      color: Colors.yellow,
                    ),
                  ),
                  Align(
                    alignment: Alignment.bottomRight,
                    child: Container(
                      width: 16.0,
                      height: 16.0,
                      color: Colors.black,
                    ),
                  ),
                ],
              ),
              // 使用图片生成头像,并添加前景装饰
              ChowAvatar(
                statusColor: Colors.deepOrange,
                image: AssetImage('assets/images/avatar.jpg'),
                foregroundDecoration: BoxDecoration(
                  shape: BoxShape.circle,
                  border: Border.all(
                    color: Colors.deepOrange.withOpacity(0.75),
                    width: 5.0,
                  ),
                ),
              ),
              // 使用图片生成带状态的头像,设置状态大小和装饰
              ChowAvatar(
                statusSize: 16,
                statusColor: Colors.green,
                image: AssetImage('assets/images/avatar.jpg'),
                decoration: BoxDecoration(
                  shape: BoxShape.circle,
                  boxShadow: [
                    BoxShadow(
                      color: Colors.black54,
                      blurRadius: 16.0,
                    ),
                  ],
                ),
                children: [
                  AlignCircular(
                    alignment: Alignment.topRight,
                    child: Container(
                      width: 20,
                      height: 20,
                      alignment: Alignment.center,
                      decoration: BoxDecoration(
                        border: Border.all(
                          color: Colors.white,
                          width: 0.5,
                        ),
                        color: Colors.red,
                        shape: BoxShape.circle,
                      ),
                      child: Text(
                        '12',
                        style: TextStyle(
                          fontSize: 10,
                          fontWeight: FontWeight.w500,
                          color: Colors.white,
                        ),
                      ),
                    ),
                  ),
                ],
              ),
            ],
          ),
        ),
      ),
    );
  }
}

更多关于Flutter头像生成插件chow_avatar的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter头像生成插件chow_avatar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


chow_avatar 是一个用于生成用户头像的 Flutter 插件,它可以根据用户的名字或其他信息生成一个自定义的头像。这个插件通常用于在应用中为用户生成默认头像,特别是在用户没有上传自定义头像的情况下。

安装 chow_avatar

首先,你需要在 pubspec.yaml 文件中添加 chow_avatar 依赖:

dependencies:
  flutter:
    sdk: flutter
  chow_avatar: ^1.0.0  # 请确保使用最新版本

然后运行 flutter pub get 来安装依赖。

使用 chow_avatar

1. 基本使用

你可以使用 ChowAvatar 组件来生成一个简单的头像。以下是一个简单的例子:

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

class AvatarExample extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Chow Avatar Example'),
      ),
      body: Center(
        child: ChowAvatar(
          name: 'John Doe',
          size: 100,
          backgroundColor: Colors.blue,
          textColor: Colors.white,
          fontSize: 40,
        ),
      ),
    );
  }
}

在这个例子中,ChowAvatar 会根据名字 'John Doe' 生成一个头像,使用蓝色背景和白色文字。

2. 自定义属性

ChowAvatar 提供了多种自定义属性,允许你根据需要调整头像的外观:

  • name: 生成头像的字符串。通常是用户的名字。
  • size: 头像的大小。
  • backgroundColor: 头像的背景颜色。
  • textColor: 文字的颜色。
  • fontSize: 文字的大小。
  • shape: 头像的形状。可以是 BoxShape.circle(圆形)或 BoxShape.rectangle(方形)。
  • textStyle: 自定义文本样式。

3. 自定义头像生成逻辑

如果你想要更复杂的头像生成逻辑,你可以使用 ChowAvatarBuilder 来完全控制头像的生成过程:

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

class CustomAvatar extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Custom Avatar Example'),
      ),
      body: Center(
        child: ChowAvatarBuilder(
          name: 'Jane Doe',
          size: 120,
          builder: (context, initials) {
            return Container(
              width: 120,
              height: 120,
              decoration: BoxDecoration(
                color: Colors.green,
                shape: BoxShape.circle,
              ),
              child: Center(
                child: Text(
                  initials,
                  style: TextStyle(
                    color: Colors.white,
                    fontSize: 50,
                    fontWeight: FontWeight.bold,
                  ),
                ),
              ),
            );
          },
        ),
      ),
    );
  }
}
回到顶部