热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Flutter学习之旅(十四)sdcard权限与资源文件配置

为什么前面的文章一直在说基础控件,这里面突然就说资源文件和权限了,本来这些东西想拿到后面一起说的,但是由于下一篇文章该说道image这个控件了,image加载图片的方式有多种,其中一种就是从

为什么前面的文章一直在说基础控件,这里面突然就说资源文件和权限了,本来这些东西想拿到后面一起说的,但是由于下一篇文章该说道image这个控件了,image加载图片的方式有多种,其中一种就是从

sdcard中读取图片,以及读取资源文件. 知识点还是连贯的梳理比较好


资源文件配置

说起资源文件配置,我就没见过比Flutter 再坑的了,下面以我自身踩坑为例




Flutter 学习之旅(十四)     sdcard权限与资源文件配置


image.png

首先我在app的根目录创建了 images 文件夹,接下来需要在pubspec.yaml 这个文件中配置一下,

# - images/ 是将整个跟目录添加进去
# 注意,这里比价坑的是 assets 前面2个空格 ,
# - image -和images中间一个空格,
# 稍微有一点差错都不行,
flutter:
uses-material-design: true
# - images/ 是将整个跟目录添加进去
# 注意,这里比价坑的是 assets 前面2个空格 ,
# - image -和images中间一个空格,
# 稍微有一点差错都不行,
assets:
- images/
- images/1.0x/
- images/2.0x/
- images/3.0x/

1. 第一个坑,我自己在添加的过程中,assets 的首字母没有与上面uses 的首字母对齐,竟然报错了,经过试验发现 assets: 这个关键字可以从屏幕最左边开始,也可以空2格开始,其他都不行,


2. – images/ 这个里面有个坑,那就是-开始的地方必须是 assets 开始的地方起最少缩进2个空格,切-与images/中间必须有一个空格,


3.在这里你会看到我又在images文件夹中定义了另外3个文件夹,分别是1.0x,2.0x,3.0x,其实flutter也是支持多分辨率自动选择分辨率大小合适的图片,沿用了ios 的1x 2x 3x 的方案,文件夹和引用在上面


权限问题

由于需要适配android6.0 的运行时权限,所以flutter 也引入了运行获取权限的概念,这里推荐大家使用 permission_handler 这个库,还是比较方便的,

dependencies:
permission_handler: ^5.0.1+1 #导包

但是android manifast文件的权限还必须要有,这里先手动随便添加几个权限

使用方法

Permission.storage.request()
..then((value) {
if (value.isGranted) {
Navigator.of(context).pushNamed(page_routes_iamge);
}
});
//还有一种写法是
// var result = await Permission.storage.request();
// if (result.isGranted) {
// Navigator.of(context).pushNamed(page_routes_iamge);
// }

这个是获取到权限后再跳转

同时申请多个权限的时候的写法,其实一个权限也是调用的这个方法,只不过是进行了一次封装

[Permission.storage,Permission.camera].request()
..then((value) {///此value Map 类型
if (value[Permission.storage].isGranted) {
if(value[Permission.camera].isGranted){
Navigator.of(context).pushNamed(page_routes_iamge);
}
}
});

我学习flutter的整个过程都记录在里面了
https://www.jianshu.com/c/36554cb4c804

最后附上demo 地址

https://github.com/tsm19911014/tsm_flutter




推荐阅读
  • 在Android 4.4系统中,通过使用 `Intent` 对象并设置动作 `ACTION_GET_CONTENT` 或 `ACTION_OPEN_DOCUMENT`,可以从相册中选择图片并获取其路径。具体实现时,需要为 `Intent` 添加相应的类别,并处理返回的 Uri 以提取图片的文件路径。此方法适用于需要从用户相册中选择图片的应用场景,能够确保兼容性和用户体验。 ... [详细]
  • iOS snow animation
    CTSnowAnimationView.hCTMyCtripCreatedbyalexon1614.Copyright©2016年ctrip.Allrightsreserved.# ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • NX二次开发:UFUN点收集器UF_UI_select_point_collection详解
    本文介绍了如何在NX中使用UFUN库进行点收集器的二次开发,包括必要的头文件包含、初始化和选择点集合的具体实现。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • 本文探讨了Android系统中支持的图像格式及其在不同版本中的兼容性问题,重点涵盖了存储、HTTP传输、相机功能以及SparseArray的应用。文章详细分析了从Android 10 (API 29) 到Android 11 的存储规范变化,并讨论了这些变化对图像处理的影响。此外,还介绍了如何通过系统升级和代码优化来解决版本兼容性问题,以确保应用程序在不同Android版本中稳定运行。 ... [详细]
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • 基于 Vue 和 Element UI 实现的简洁登录界面设计
    本文介绍了一种利用 Vue.js 和 Element UI 框架构建的简洁登录界面设计。该设计不仅注重用户体验,还确保了界面的美观性和易用性。通过合理的布局和组件配置,实现了高效、响应式的登录功能,适用于多种前端应用场景。 ... [详细]
  • 本文详细介绍了在Linux系统上编译安装MySQL 5.5源码的步骤。首先,通过Yum安装必要的依赖软件包,如GCC、GCC-C++等,确保编译环境的完备。接着,下载并解压MySQL 5.5的源码包,配置编译选项,进行编译和安装。最后,完成安装后,进行基本的配置和启动测试,确保MySQL服务正常运行。 ... [详细]
  • 在 Vue 应用开发中,页面状态管理和跨页面数据传递是常见需求。本文将详细介绍 Vue Router 提供的两种有效方式,帮助开发者高效地实现页面间的数据交互与状态同步,同时分享一些最佳实践和注意事项。 ... [详细]
  • MyISAM和InnoDB是MySQL中最为广泛使用的两种存储引擎,每种引擎都有其独特的优势和适用场景。MyISAM引擎以其简单的结构和高效的读取速度著称,适用于以读操作为主、对事务支持要求不高的应用。而InnoDB引擎则以其强大的事务处理能力和行级锁定机制,在需要高并发写操作和数据完整性的场景下表现出色。选择合适的存储引擎应综合考虑业务需求、性能要求和数据一致性等因素。 ... [详细]
  • 在Android应用开发中,实现与MySQL数据库的连接是一项重要的技术任务。本文详细介绍了Android连接MySQL数据库的操作流程和技术要点。首先,Android平台提供了SQLiteOpenHelper类作为数据库辅助工具,用于创建或打开数据库。开发者可以通过继承并扩展该类,实现对数据库的初始化和版本管理。此外,文章还探讨了使用第三方库如Retrofit或Volley进行网络请求,以及如何通过JSON格式交换数据,确保与MySQL服务器的高效通信。 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
  • 理解和应用HTTP请求中的转发与重定向机制
    在HTTP请求处理过程中,客户端发送请求(通常简称为req),服务器进行相应处理后返回响应(通常简称为res)。理解和应用客户端的转发与重定向机制是前端开发的重要内容。这两种机制在Web开发中具有关键作用,能够有效管理和优化用户请求的处理流程。转发机制允许服务器内部将请求传递给另一个资源,而重定向则指示客户端向新的URL发起新的请求,从而实现页面跳转或资源更新。掌握这些技术有助于提升应用的性能和用户体验。 ... [详细]
author-avatar
PAISONG_675
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有