Flutter随机生成头像插件random_avatar的使用

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

Flutter随机生成头像插件random_avatar的使用

简介

random_avatar 是一个Flutter包装器,用于 Multiavatar,它是一个多元文化的头像生成器。Random Avatar旨在代表来自不同种族、文化、年龄组、世界观和生活背景的人们。总共可以生成 12,230,590,464 个独特的头像。

Multiavatar Logo

安装与使用

添加依赖

在你的pubspec.yaml文件中添加random_avatar

dependencies:
  random_avatar: any # 或者指定最新版本

获取SVG代码字符串

你可以通过提供一个唯一的字符串来获取SVG代码:

String svgCode = RandomAvatarString('saytoonz');

如果你想让背景透明,可以这样做:

String svgCode = RandomAvatarString('saytoonz', trBackground: true);

获取SVG Widget

如果你想要直接在UI中显示头像,可以使用以下方法:

Widget svgCode = RandomAvatar('saytoonz', height: 50, width: 50);

同样地,如果需要透明背景的话:

Widget svgCode = RandomAvatar('saytoonz', trBackground: true, height: 50, width: 50);

更多用法示例请参考官方仓库中的例子

Info

Multiavatar通过混合不同的头像部分和颜色主题来创建新的头像。每个唯一的头像都可以由唯一的字符字符串标识,该字符串也是Multiavatar包的输入,将其转换为六个两位数(范围00-47),每个数字代表最终头像的一部分。

例如:

  • 000000000000 - 表示第一个头像及其A主题。
  • 474747474747 - 表示第12,230,590,464个头像(或第16个初始头像及其"C"颜色主题)。

示例Demo

下面是一个完整的示例应用,演示如何使用random_avatar插件动态生成并展示随机头像:

import 'dart:developer';

import 'package:flutter/material.dart';
import 'package:random_avatar/random_avatar.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: 'Random Avatar example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Random Example'),
    );
  }
}

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

  final String title;

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

class _MyHomePageState extends State<MyHomePage> {
  final TextEditingController _controller = TextEditingController();
  final List<Widget> _painters = <Widget>[];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: SingleChildScrollView(
        child: Wrap(
          children: [
            FloatingActionButton(
              onPressed: () {
                String svg = RandomAvatarString(
                  DateTime.now().toIso8601String(),
                  trBackground: false,
                );
                log(svg);

                _painters.add(
                  RandomAvatar(
                    DateTime.now().toIso8601String(),
                    height: 50,
                    width: 52,
                  ),
                );
                _controller.text = svg;
                setState(() {});
              },
              tooltip: 'Generate',
              child: const Icon(Icons.gesture),
            ),
            const SizedBox(height: 20),
            ..._painters,
          ],
        ),
      ),
    );
  }
}

这个简单的应用程序允许用户点击按钮生成一个新的随机头像,并将其添加到屏幕上。每次点击都会生成一个新的头像,并且可以通过查看日志输出看到对应的SVG代码。


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

1 回复

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


当然,下面是一个关于如何在Flutter项目中使用random_avatar插件来随机生成头像的示例代码。

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

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

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

接下来,在你的Flutter项目中,你可以按照以下步骤使用random_avatar插件来生成随机头像。

示例代码

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Random Avatar Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: RandomAvatarScreen(),
    );
  }
}

class RandomAvatarScreen extends StatefulWidget {
  @override
  _RandomAvatarScreenState createState() => _RandomAvatarScreenState();
}

class _RandomAvatarScreenState extends State<RandomAvatarScreen> {
  String? _avatarDataUrl;

  void _generateRandomAvatar() {
    final avatar = RandomAvatar();
    setState(() {
      _avatarDataUrl = avatar.base64String;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Random Avatar Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            if (_avatarDataUrl != null)
              Image.memory(
                base64Decode(_avatarDataUrl!),
                width: 200,
                height: 200,
              ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _generateRandomAvatar,
              child: Text('Generate Random Avatar'),
            ),
          ],
        ),
      ),
    );
  }
}

代码解释

  1. 导入依赖

    • import 'package:flutter/material.dart'; 导入Flutter的核心库。
    • import 'package:random_avatar/random_avatar.dart'; 导入random_avatar插件。
  2. 主函数

    • void main() => runApp(MyApp()); 初始化Flutter应用。
  3. MyApp类

    • 创建一个Material应用,并设置主题和主页。
  4. RandomAvatarScreen类

    • 这是一个有状态的Widget,用于显示和生成随机头像。
  5. _RandomAvatarScreenState类

    • _avatarDataUrl 用于存储生成的头像的Base64字符串。
    • _generateRandomAvatar 方法调用RandomAvatar类生成随机头像,并更新UI。
    • build 方法构建UI,包含一个显示头像的Image组件和一个生成头像的按钮。

运行代码

将上述代码复制到你的Flutter项目中,并确保你已经正确安装了random_avatar插件。然后运行应用,你应该会看到一个按钮,点击该按钮会生成并显示一个随机头像。

这样,你就成功地在Flutter项目中使用random_avatar插件生成随机头像了。

回到顶部