用户登录

要在内容页面上显示的文件信息需要处理一下,比如我们需要一个中文的标题,有些数据也需要格式化一下,或者做点处理才适合显示。

FileMetadataListItem

先定义一个类型,打开 file.dart,在这个文件里定义一个普通的类,名字是 FileMetadataListItem,用它表示要显示的文件信息数据项目。里面添加一个 String 类型的 title,一个 dynamic value ,可以再加上一个 Widget? icon。

添加一个构造方法,名字是 FileMetadataListItem,提供一些带名字的参数 required this.title ,required this.value ,再加上一个 this.icon。

file_show_store.dart

再打开 file_show_store.dart,在里面可以添加一些计算属性,先添加一个属性,类型是 FIleMetadata? ,名字是 metadata ,对应的值就是 file? 里的 metadata 。

下面再添加一个计算属性,返回的类型是 FileMetadataListItem? 名字是 focalLength ,表示焦距,里面声明一个 FileMetadataListItem? 名字是 item。 最后可以 return 这个 item 。

在上面,再声明一个 focalLength ,值是 metadata? 里的 focalLength 。 然后判断一下,如果 focalLength 不等于 null 。声明一个 title ,值是焦距,再声明一个 value ,它是一个字符串,里面可以用一下 focalLength.toInt() 把它转换成整数,后面再加上一个 mm ,表示毫米。下面再声明一个 icon ,值是 Icon,小图标用一下 Icons.lens_outlined 。

设置一下 item 的值,新建一个 FileMetadataListItem ,设置一下title,值是 title ,value 的值是 value,再设置一下 icon ,值是 icon 。

下面可以复制三份这个计算属性,然后修改一下。 选中这几个地方,统一修改一下,名字设置成 fNumber 。

如果 fNumber 不等于 null, title 的值改成 光圈,value 的值,先是一个 f 斜线,后面加上这个 fNumber 的值。使用的小图标修改成 camera_outlined。

选中下面这个计算属性要修改的这几个地方,改成 exposureTime,如果它的值不是 null, title 的值应该是曝光。value 的值要判断一下,exposureTime 是不是大于 1,如果是,它的值就是 exposureTime 后面再加上一个 s,表示秒。如果不大于 1,它的值是 1 斜线,后面要计算一下 1 / exposureTime ,结果可以 round() 一下,再加上一个 s 。使用的小图标修改一下 timer_outlined。

选中下面这个计算属性要改的地方,修改成 iSO ,如果它的值不是 null,title 的值是感光,value 的值就是这个 iSO 的值,小图标用一下 iso_outlined 。

specs

下面再定义一个计算属性,返回的类型是 List? 名字是 specs ,在它里面声明一个 List 名字是 items ,它是一个列表,判断一下 focalLength 如果不等于 null,在列表里就添加一个 focalLength!。

再判断一下 fNumber 不等于 null ,就再添加一个 fNumber! 然后判断 exposureTime 不等于 null ,可以添加一个 exposureTime! ,最后再判断一下 iSO 不等于 null ,可以再添加一个 iSO! 。

return 的东西可以判断一下 items.length > 0 ,如果是就返回 items ,不然就返回 null 。

准备拍摄参数信息数据(Specs)《 Flutter 移动端实例:图像数据 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点