flutter R库对图片资源进行自动管理

devtools/2025/1/15 7:09:47/

项目中对资源的使用是开发过程中再常见不过的一环。 一般我们在将资源导入到项目中后,会通过资源名称来访问。 但在很多情况下由于我们疏忽输入错了资源名称,从而导致资源无法访问。 所以,急需解决两个问题:

  • 资源编译期可检查
  • 可方便预览资源

安装相关插件

在vscode中安装两个插件, 如下 :

● Flutter Assets Gen 插件: 负责资源生成
在这里插入图片描述

● Image preview 插件 : 负责资源图片预览
在这里插入图片描述
使用后的效果如下:
在这里插入图片描述

配置

插件安装完成后, 在pub.yaml中配置 。可放到文件最后, 最左对齐

flutter_assets:assets_path: assets/images/output_path: lib/filename: r.dartclassname: R

接着执行如下操作:

vscode 上点击 ‘查看’ 下的 “命令面板” . 输入 Flutter Assets: Generate
在这里插入图片描述

如果配置都正确, 这时会在指定目录下生成 r.dart文件 。
类似如下 :

// ignore_for_file: prefer_single_quotes
class R {R._();/// Assets for assetsImagesIcLauncher/// assets/images/ic_launcher.pngstatic const String assetsImagesIcLauncher = "assets/images/ic_launcher.png";/// Assets for assetsImagesIconBack/// assets/images/icon_back.pngstatic const String assetsImagesIconBack = "assets/images/icon_back.png";/// Assets for assetsImagesIconCommunityGrey/// assets/images/icon_community_grey.pngstatic const String assetsImagesIconCommunityGrey = "assets/images/icon_community_grey.png";/// Assets for assetsImagesIconCommunitySelected/// assets/images/icon_community_selected.pngstatic const String assetsImagesIconCommunitySelected = "assets/images/icon_community_selected.png";/// Assets for assetsImagesIconHomeGrey/// assets/images/icon_home_grey.pngstatic const String assetsImagesIconHomeGrey = "assets/images/icon_home_grey.png";
}

r.dart 文件将资源都声明为了全局常量,对比直接录入字符串的方式,减少了因录入不对而导致的加载失败问题。

使用

需要先导入 r.dart文件

import 'package:getx_demo/r.dart';
  • 显示本地图片 :
Image.asset(R.assetsImagesIconBack);

http://www.ppmy.cn/devtools/150611.html

相关文章

Unity WebGL:本机部署,运行到手机

Unity WebGL 简单介绍一下Unity WebGL的技术方案,在WebGL平台出包后,Unity的运行时C/C代码是通过Emscripten编译成了WebAssembly/Wasm;游戏逻辑部分的C#代码是先通过il2cpp转成C再编译转成的Wasm,Unity程序就就可以在支持WebAsse…

HTTP 范围Range请求

引言 在现代Web应用中,HTTP范围请求是一种重要的技术,允许客户端请求资源的部分内容,而不是整个资源。这对于大型文件的传输尤其有用,如视频流、断点续传下载等。本文将深入探讨HTTP范围请求的工作原理、实现方法和应用场景。 H…

MTK6768 Android13 亮度条均匀调节实现

文章目录 需求:问题现象:需求实现疑难问题点:相关资源修改的文件调试技巧具体需求实现去除亮度弹框设置去掉跳转逻辑SystemUI亮度条长按跳转屏蔽 实现亮度均匀调节PhoneWindowManager.javaBrightnessUtils convertLinearToGammaFloatBrightne…

Flink类加载机制详解

1. 总览 在运行Flink应用时,它会加载各种类,另外我们用户代码也会引入依赖,由于他们依赖版本以及加载顺序等不同,就可能会导致冲突,所以很要必要了解Flink是如何加载类的。 根据加载的来源的不同,我们可以将类分为三种: Java Classpath:Java类路径下,这是Java通用的…

LabVIEW智能水肥一体灌溉控制系统

本文详细介绍了一种基于LabVIEW的智能水肥一体灌溉控制系统的设计与实现。该系统采用模糊控制策略,能够自动调节土壤湿度和肥液浓度,满足不同作物在不同生长阶段的需求,有效提高水肥利用效率,对现代精准农业具有重要的实践和推广价…

MATLAB中rescale函数用法

目录 语法 说明 示例 缩放到单位区间 缩放到指定范围 缩放矩阵列和行 rescale函数的功能是数组元素的缩放范围。 语法 R rescale(X) R rescale(X,a,b) R rescale(___,Name,Value) 说明 R rescale(X) 将 X 的条目缩放到区间 [0,1]。输出数组 R 的大小与 X 相同。 R…

ElectronSharp,.Net跨平台的多一种选择

文章目录 背景解决方案小结 背景 最近有个项目是基于Blazor的跨平台项目,要求在Windows、安卓平板和Mac上能跑,而且要求实现视频通话功能,而Web里的视频通话无非就是基于WebRTC技术。经过前期调研,通过套壳MAUI,Windo…

PyCharm 引用其他路径下的文件报错 ModuleNotFound 或报红

PyCharm 中引用其他路径下的文件提示 ModuleNotFound,将被引用目录添加到系统路径: # # 获取当前目录 dir_path os.path.dirname(os.path.realpath(__file__)) # # 获取上级目录 parent_dir_path os.path.abspath(os.path.join(dir_path, os.pardir))…