Flutter图标生成插件jazzicon的使用

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

Flutter图标生成插件jazzicon的使用

描述

此包包含如何生成标识符。 标识符通常用作钱包或加密货币头像。它具有唯一性,因为它是根据你的地址生成的。


MetaMask

MetaMask


Widget 和 JazziconData()

添加钱包/硬币地址列表。确保地址有效。

Jazzicon.getIconWidget 需要 JazziconData。你可以通过调用 Jazzicon.getJazziconData() 来创建 JazziconData

示例:

Jazzicon.getIconWidget(Jazzicon.getJazziconData(
160, 
address: "0xfe3526e15Bd6dAD0796B84bEb548b603B6B6E444"))

结果: 成功结果


如果你输入错误的代码,例如: 不要这样做

Jazzicon.getIconWidget(Jazzicon.getJazziconData(
160, 
address: "random string here"))

错误结果 错误结果

注意:如果地址无效,图像将返回灰色图像。

有效的地址示例。如果你想查看更多使用方法,可以查看 示例

List<String> addresslist = [
    "0x123C3F273bE7d218A6Ab040D421b51237945ce11",
    "0x576C3F273bE7d218A6Eb040D421b51237945ce10",
    "0xEB8D9FDcf121bbae84c4E91aE47E9348c367c7F4",
    "0xb9bd886414b2d37b73c1266ebcb9d7f5fdb7383b",
    "0xb934F4294Df760290e969F355C107752400150bB",
    "0x318406407ea60F2E1C305bEd64Fb4A9db72AA6bD",
    "0x07Becc171101448476ABF27C1f73989F945A0742",
    "0xfe3526e15Bd6dAD0796B84bEb548b603B6B6E444",
];

示例

完整示例


开放贡献者


示例代码

import 'package:flutter/material.dart';
import 'package:jazzicon/jazziconshape.dart';
import 'package:jazzicon/jazzicon.dart';

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

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

  // 这个小部件是你应用的根。它是一个有状态的小部件,意味着它有一个状态对象(定义在下面),该状态对象包含影响其外观的字段。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // 这是你的应用的主题。
        //
        // 尝试运行你的应用。你会看到应用有一个蓝色工具栏。然后,不退出应用,试着将以下的主色调改为绿色并执行“热重载”(在你运行“flutter run”的控制台中按“r”,或者简单地保存你的更改以实现“热重载”)。请注意,计数器并没有重置回零;应用并没有重新启动。
        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);

  // 这个小部件是你应用的首页。它是一个有状态的小部件,意味着它有一个状态对象(定义在下面),该状态对象包含影响其外观的字段。
  // 这个类是状态的配置。它保存了由父组件(在这个例子中是App小部件)提供的值(在这个例子中是标题)并用于State的构建方法。在小部件子类中声明的字段总是被标记为“final”。

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  JazziconData? jd;

  List<String> addresslist = [
    "0x123C3F273bE7d218A6Ab040D421b51237945ce11",
    "0x576C3F273bE7d218A6Eb040D421b51237945ce10",
    "0xEB8D9FDcf121bbae84c4E91aE47E9348c367c7F4",
    "0xb9bd886414b2d37b73c1266ebcb9d7f5fdb7383b",
    "0xb934F4294Df760290e969F355C107752400150bB",
    "0x318406407ea60F2E1C305bEd64Fb4A9db72AA6bD",
    "0x07Becc171101448476ABF27C1f73989F945A0742",
    "0xfe3526e15Bd6dAD0796B84bEb548b603B6B6E444",
  ];

  List<JazziconData> jdlist = [];

  [@override](/user/override)
  void initState() {
    super.initState();
    // jd = Jazzicon.getJazziconData(200, address: "0x85CddC7f65410E9Cb94D959Ac57405ee0EcBFBE3");
    for (var address in addresslist) {
      jdlist.add(Jazzicon.getJazziconData(160, address: address));
    }
  }

  void _incrementCounter() {
    setState(() {});
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    // 每次调用setState时都会重新运行此方法,例如上面的_incrementCounter方法所做的那样。
    //
    // Flutter框架已经被优化为使重建方法快速运行,因此你可以重建任何需要更新的内容而不是个别改变小部件实例。
    return Scaffold(
      appBar: AppBar(
        // 在这里我们从MyHomePage对象中获取值,该对象是由App.build方法创建的,并将其用于设置我们的应用栏标题。
        title: Text(widget.title),
      ),
      body: Center(
        child: Wrap(
          spacing: 20,
          runSpacing: 20,
          children: jdlist.map((e) {
            return Jazzicon.getIconWidget(e);
          }).toList(),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ), // 这个尾随的逗号使得自动格式化更美观。
    );
  }
}

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

1 回复

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


当然,以下是如何在Flutter项目中使用jazzicon插件来生成图标的示例代码。jazzicon是一个用于生成独特且可识别图标的Flutter插件,常用于生成用户头像等场景。

1. 添加依赖

首先,在你的pubspec.yaml文件中添加jazzicon依赖:

dependencies:
  flutter:
    sdk: flutter
  jazzicon: ^最新版本号  # 请替换为实际的最新版本号

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

2. 导入包

在你的Dart文件中导入jazzicon包:

import 'package:jazzicon/jazzicon.dart';

3. 使用Jazzicon生成图标

下面是一个简单的示例,演示如何使用Jazzicon生成并显示图标:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Jazzicon Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Jazzicon Demo'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              // 使用Jazzicon生成图标
              JazzIcon(
                seed: 'user123', // 种子值,用于生成唯一的图标
                size: 100,       // 图标大小
              ),
              SizedBox(height: 20),
              // 使用JazzIcon.builder生成图标,支持更多自定义
              JazzIcon.builder(
                seed: 'user456',
                size: 100,
                builder: (context, painter) {
                  return CustomPaint(
                    painter: painter,
                    size: Size(100, 100),
                    child: Container(
                      decoration: BoxDecoration(
                        border: Border.all(color: Colors.grey, width: 2),
                        borderRadius: BorderRadius.circular(50),
                      ),
                    ),
                  );
                },
              ),
            ],
          ),
        ),
      ),
    );
  }
}

解释

  1. 依赖导入:在pubspec.yaml中添加jazzicon依赖,并在Dart文件中导入它。
  2. JazzIcon组件:使用JazzIcon组件生成图标,通过seed参数指定种子值,通过size参数指定图标大小。
  3. JazzIcon.builder:使用JazzIcon.builder可以自定义图标的绘制,比如添加边框等。

运行项目

确保所有文件保存后,运行你的Flutter项目:

flutter run

你应该能够在你的设备上看到一个带有Jazzicon图标的界面。通过改变seed值,你可以生成不同的图标。

希望这个示例能帮助你理解如何在Flutter项目中使用jazzicon插件生成图标。如果有其他问题,欢迎继续提问!

回到顶部