Flutter头像生成插件avataaars的使用

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

Flutter头像生成插件avataaars的使用

Avataaars 是一个 Flutter 包,它提供了 Avataaar 类,可以轻松生成漂亮的个人头像。这个包深受 Avataaars Generator 的启发。原始的头像由 Pablo Stanley 设计,可以在 这里 找到 Sketch 库。

展示

以下的 Avataaar 自定义器并不包含在这个包中,但可以在示例文件夹中找到。它应该展示了 Avataaar 类的功能。

随机生成 下一个 选择

使用

  • 创建一个随机的 Avataaar 使用 Avataaar.random()
  • 通过使用 copyWith 方法来编辑各个部分。
  • 调用 Avataaar.toSvg() 获取 SVG 字符串。

语言支持

已知错误

在使用 flutter_svg 包来渲染 SVG 字符串时,控制台可能会出现警告。这通常与这个问题有关:issue

完整示例代码

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

import 'avatar_customizer.dart';

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  // 初始化一个随机的 Avataaar
  Avataaar avataaar = Avataaar.random();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Avataaars')),
      body: SingleChildScrollView(
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            // 显示自定义器并允许用户修改头像
            Container(
              padding: const EdgeInsets.all(10),
              constraints: const BoxConstraints(maxWidth: 600),
              child: AvatarCustomizer(
                // 初始值设置为随机生成的 Avataaar
                initialValue: avataaar,
                // 当值发生变化时更新状态
                onChanged: (a) => setState(() {
                  avataaar = a;
                }),
              )
            )
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个带有 Avataaar 自定义器的简单应用。用户可以通过界面修改头像,并实时预览更改。


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

1 回复

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


当然,下面是一个关于如何在Flutter中使用avataaars插件来生成头像的示例代码。avataaars是一个基于SVG的头像生成库,可以创建高度自定义的卡通头像。

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

dependencies:
  flutter:
    sdk: flutter
  avataaars: ^0.5.0  # 请检查最新版本号

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

接下来,在你的Flutter应用中,你可以使用以下代码来生成和显示一个自定义头像:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Avataaars Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Avataaars Demo'),
        ),
        body: Center(
          child: AvatarWidget(),
        ),
      ),
    );
  }
}

class AvatarWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final Avatar avatar = Avatar(
      circleShape: true,
      topType: TopType.longHairBob,
      accessoriesType: AccessoriesType.blank,
      hairColor: HairColor.black,
      facialHairType: FacialHairType.beardMedium,
      facialHairColor: FacialHairColor.black,
      clotheType: ClotheType.shirtCollarTurtleneck,
      clotheColor: ClotheColor.blue01,
      eyeType: EyeType.winkWink,
      eyebrowType: EyebrowType.angryNatural,
      mouthType: MouthType.tongue,
      skinColor: SkinColor.tan,
    );

    return Container(
      width: 200,
      height: 200,
      decoration: BoxDecoration(
        border: Border.all(color: Colors.grey, width: 2),
        borderRadius: BorderRadius.circular(100),
      ),
      child: CustomPaint(
        painter: AvatarPainter(avatar),
      ),
    );
  }
}

在上面的代码中,我们创建了一个AvatarWidget,它使用Avatar类来定义一个头像,并通过AvatarPainter将其绘制到屏幕上。Avatar类提供了许多属性来自定义头像的各个方面,包括发型、配饰、肤色、眼睛、嘴巴等。

注意,avataaars库内部使用了CustomPaint来绘制头像,因此我们在Container中使用CustomPaint来显示头像。我们还添加了一个边框来使头像更加明显。

运行这个示例应用,你将会看到一个根据我们提供的属性生成的自定义卡通头像。你可以根据需要调整Avatar类的属性来生成不同的头像。

回到顶部