在 Flutter 中使用 flutter_gen 简化图像资产管理

你是否厌倦了在 Flutter 项目中手动管理图像资产的繁琐任务?

告别手工输入资源路径的痛苦,欢迎使用“Flutter Gen”高效资源管理的时代。在本文中,我将带您从手动处理图像资源的挫折到动态生成它们的便利。

选择1:痛苦手动添加–管理图像资产的传统方法 😥

想象一下,你在 Flutter 的世界里 ,创建你很棒的应用程序。你有这些很酷的图片,但问题是,你必须手动输入这些图片的路径。这就像写下美味蛋糕的食谱 ,但有很多机会把配料混在一起或拼错 。这不好玩,对吧?

这是手动向项目添加图像的方法:

  1. 将所需的图片添加到项目中的 assets 文件夹中。
  2. 将图像的路径添加到 pubspec.yaml 文件中。
  3. 直接在代码中输入路径来获取图像。

选择2:为所有资产创建一个常量变量 🤔

让我们创建一个名为 constants.dart 的常量文件,在这个文件中,创建一个名为 Constants 的类,这个类将包含存储资源路径的变量。

在代码中直接使用这个变量来获取图像。

选择3:动态生成资产 🤯🪄

现在,神奇的事情发生了,我们将使用一个包, flutter_gen 一个 flutter 代码生成器,用于我们的资产、字体、颜色等,以生成所需的资产。

将所需的包添加到 pubspec.yaml 文件中

  • 首先,在应用的依赖中添加 flutter_gen
  • 然后,在你的应用的 dev_dependencies 中添加 flutter_gen_runnerbuild_runner
  • 在终端中运行 flutter pub get

生成资产

在终端中运行以下命令来生成所有资源:flutter packages pub run build_runner build。这将创建一个文件夹 lib/gen ,在该文件夹中,将有一个名为 assets.gen.dart 的文件。该文件夹包含所有资产信息!


正如你所看到的,生成的文件有一个变量 dash,它保存了图像的路径。

在代码中直接使用生成的文件来获取图像

import 'package:asset_generation/gen/assets.gen.dart';
import 'package:flutter/material.dart';

class Page1 extends StatelessWidget {
  const Page1({super.key});

  
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Assets'),
      ),
      body: Center(
        child:
            // Image.asset('assets/dash.png'),
            // Image.asset(Constants.dashImage),
            Image.asset(Assets.dash.path),
      ),
    );
  }
}

可以将其视为拥有一位神奇的厨师 👩🏻‍🍳,他可以随时烹制新菜肴,而无需新食谱。想要向您的应用程序添加新图像吗?没问题——Flutter Gen 为您提供支持。

如果您有兴趣了解有关 flutter_gen 包的更多信息,我建议您查看官方文档:https://pub.dev/packages/flutter_gen。


原文:https://medium.com/flutter-community/streamlining-image-asset-management-b57b7fcb5b9d

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/431749.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

达梦数据库基础操作(五): 索引操作

达梦数据库基础操作(五): 索引操作 1. 索引操作 1.1 创建索引 # 使用 CREATE INDEX 语句创建普通索引。 CREATE INDEX ind_emp_salary ON employee(salary);1.2 查看创建的索引 # 通过字典表 user_indexes 查看已创建索引的名称、类型。SELECT table_name, index…

C语言经典算法-1

C语言经典算法讲解练习 文章目录 C语言经典算法讲解练习1.汉若塔2.费式数列3. 巴斯卡三角形4.三色棋5.老鼠走迷官(一)6.老鼠走迷官(二)7.骑士走棋盘8.八皇后9.八枚银币10.生命游戏 1.汉若塔 说明:河内之塔(Towers of …

ArmSoM Rockchip系列产品 通用教程 之 UART 使用

1. UART 简介​ Rockchip UART (Universal Asynchronous Receiver/Transmitter) 基于16550A串口标准,完整模块支持以下功能: 支持5、6、7、8 bits数据位。支持1、1.5、2 bits停止位。支持奇校验和偶校验,不支持mark校验和space校验。支持接…

文物保护平台数据统计分析及预警-子系统专题分析

文物预防性监测与调控系统的监测统计分析子系统提供全面的文物状态及环境数据分析,为博物馆工作人员进行基于文物材质特性的专项保护提供相关科研辅助。主要的监测分析,包括各展厅文物统计分析、不同环境因素报表统计、以及监测调控设备统计分析等。 系统用户和文物管理人员可以…

onnx runtime文档学习2-torch TF简单示例

网上充斥着ONNX Runtime的简单科普,却没有一个系统介绍ONNX Runtime的博客,因此本博客旨在基于官方文档进行翻译与进一步的解释。ONNX runtime的官方文档:https://onnxruntime.ai/docs/ 如果尚不熟悉ONNX格式,可以参照该博客专栏…

Nodejs 第四十七章(redis主从复制)

Redis主从复制是一种数据复制和同步机制,其中一个Redis服务器(称为主服务器)将其数据复制到一个或多个其他Redis服务器(称为从服务器)。主从复制提供了数据冗余备份、读写分离和故障恢复等功能。 以下是Redis主从复制的…

redis06 redis事务

思维草图 redis事务认识 redis事务是一个单独的隔离操作,事务中的所有命令都会序列化、按顺序地执行,事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 redis事务的主要作用就是串联多个命令防止别的命令插队。 Multi、Exec、…

稀碎从零算法笔记Day9-LeetCode:最长公共前缀

题型:字符串 链接:14. 最长公共前缀 - 力扣(LeetCode) 来源:LeetCode 题目描述(红字为笔者添加) 编写一个函数来查找字符串数组中的最长公共前缀(前X个字母相同)。 如果不存在公共前缀&…

【数据结构和算法初阶(C语言)】复杂链表(随机指针,随机链表的复制)题目详解+链表顺序表结尾

目录 1.随机链表的复制 1.2题目描述 1.3题目分析 1.4解题: 2.顺序表和链表对比 2.1cpu高速缓存利用率 3.结语 1.随机链表的复制 一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random 该指针可以指向链表中的任何节点或空节点。 1.2题目描…

Discuz IIS上传附件大于28M失败报错Upload Failed.修改maxAllowedContentLength(图文教程)

下图:Discuz X3.5的系统信息,上传许可为1024MB(1GB) 论坛为局域网论坛,仅供内部同事交流使用! 使用官方最新的Discuz! X3.5 Release 20231221 UTF-8 下图:选择上传附件(提示可以最大上传100M)…

【Unity】使用ScriptableObject存储数据

1.为什么要用ScriptableObject? 在游戏开发中,有大量的配置数据需要存储,这个时候就需要ScriptableObject来存储数据了。 很多人会说我可以用json、xml、txt,excel等等 但是你们有没有想过,假设你使用的是json&#x…

Python 面向对象编程——类的使用

一、学习目标 1.掌握类的定义和实例化对象。 2.熟练掌握类的构造函数__init__使用。 3.掌握类的继承机制和使用。 二、相关练习 1、定义一个玩具类Toy(),创建名字为“小汽车”、“手枪”和“积木”的玩具实例,计…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:多态样式)

设置组件不同状态下的样式。 说明: 从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 从API Version 11开始支持另一种写法attributeModifier,可根据开发者需要动态设置属性。 stateStyles stateStyl…

微信报修小程序源码

源码获取方式: 1、搜一搜 万能工具箱合集 然后点击资料库,即可获取资源 一、先看Demo(已更新至4.0.0) 想看界面图片的,辛苦你爬一下楼,点击下方查看资源,进入官方demo 二、功能介绍 1、当前版…

二路归并排序的算法设计和复杂度分析and周记

数据结构实验报告 实验目的: 通过本次实验,了解算法复杂度的分析方法,掌握递归算法时间复杂度的递推计算过程。 实验内容: 二路归并排序的算法设计和复杂度分析 实验过程: 1.算法设计 第一步,首先要将数组进行…

计算机网络-第3章 数据链路层

主要内容:两个信道及对应的协议:点对点信道和广播信道,扩展以太网和高速以太网 本章的分组转发为局域网内的转发,不经过路由,网络层分组转为为网络与网络之间的转发,经过路由。局域网属于网络链路层的范围…

苹果群控功能解析与代码分享!

随着移动互联网的飞速发展,智能设备日益普及,苹果设备因其出色的用户体验和稳定的性能受到了广大用户的喜爱,然而,对于开发者而言,如何有效地管理和控制大量的苹果设备成为了一个亟待解决的问题。 一、苹果群控功能概…

00. Nginx总结-错误汇总

/www/wangmingqu/index.html" is forbidden (13: Permission denied) 错误图片 错误日志 2024/01/09 22:26:27 [error] 1737#1737: *1 "/www/wangmingqu/index.html" is forbidden (13: Permission denied), client: 192.169.1.101, server: www.wangmingqu.c…

回收小程序开发,降低企业成本,提高回收利润

近年来,人们的回收意识逐渐强烈,废品回收行业发展非常迅猛,促进了我国的资源回收再利用,我国回收行业也将迎来新的发展机遇。 随着市场规模的扩大,回收行业也正在逐步进行创新。在互联网的支持下,行业中也…

只会Vue的我,用两天学会了react,这个方法您也可以

公众号:需要以下pdf,关注下方 2023已经过完了,让我们来把今年的面试题统计号,来备战明年的金三银四!所以,不管你是社招还是校招,下面这份前端面试工程师高频面试题,请收好。 背景 由…
最新文章