当前位置: 首页 > news >正文

缩略图导航 + 底部操作栏:保存/分享/更多

前言

“海风日记“的图片查看器底部提供了缩略图导航和操作栏,支持图片切换和保存/分享/更多操作。

本文将从源码出发,深入讲解底部操作栏的实现。


一、底部操作栏

Row({ space: 0 }) { Column({ space: 4 }) { SymbolGlyph($r('sys.symbol.square_and_arrow_down')) .fontSize(22).fontColor(['#FFFFFF']) Text('保存').fontSize(10).fontColor('rgba(255,255,255,0.6)') } .layoutWeight(1).alignItems(HorizontalAlign.Center) Column({ space: 4 }) { SymbolGlyph($r('sys.symbol.shareplay')) .fontSize(22).fontColor(['#FFFFFF']) Text('分享').fontSize(10).fontColor('rgba(255,255,255,0.6)') } .layoutWeight(1).alignItems(HorizontalAlign.Center) Column({ space: 4 }) { SymbolGlyph($r('sys.symbol.ellipsis_circle')) .fontSize(22).fontColor(['#FFFFFF']) Text('更多').fontSize(10).fontColor('rgba(255,255,255,0.6)') } .layoutWeight(1).alignItems(HorizontalAlign.Center) } .width('100%').height(70) .padding({ left: 16, right: 16, bottom: 20 })

二、分页指示器组合

// 页码文字 Text(`${this.currentIndex + 1} / ${this.imageUrls.length}`) .fontSize(15).fontColor('#FFFFFF').fontWeight(FontWeight.Medium) // 分页圆点 Row({ space: 6 }) { ForEach(this.imageUrls, (url: string, idx: number) => { Column() .width(this.currentIndex === idx ? 16 : 6).height(6).borderRadius(3) .backgroundColor(this.currentIndex === idx ? '#FFFFFF' : 'rgba(255,255,255,0.4)') .animation({ duration: 200 }) }, (url: string, idx: number) => url) } .width('100%').justifyContent(FlexAlign.Center) .padding({ top: 12, bottom: 12 })

三、总结

本文通过“海风日记“的图片查看器,深入讲解了底部操作栏和分页指示器的实现:

  1. 底部操作栏:3 个操作图标等分
  2. 分页指示器:页码 + 圆点双反馈
  3. SymbolGlyph 白色图标:深色背景
  4. layoutWeight 等分:均匀分布

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!


相关资源:

  • SymbolGlyph 文档
  • layoutWeight 属性文档
  • 海风日记项目源码
  • [HarmonyOS 开发者官网](https://atomgit.com/openharmony/docs
  • 开源鸿蒙跨平台社区
http://www.cnnetsun.cn/news/3509696.html

相关文章:

  • AM62L DDR PHY寄存器解析与信号完整性调试实战
  • Ubuntu13.04搭建OK6410-A开发环境全指南
  • 工业相机图像采集卡技术解析与选型指南
  • 游戏抽卡概率验证:合规工具模拟与统计分析方法
  • 嵌入式系统存储与外设寄存器深度解析与实践
  • 酒店数据可视化实战:构建三层韧性指标体系
  • 3种实用方法解决MelonLoader Cpp2IL下载失败:从诊断到修复的完整指南
  • 从Notebook到生产环境的机器学习工程化落地实践
  • C#邮件发送:SmtpClient类详解与实战应用
  • 经济研究LaTeX模板终极指南:5分钟搞定专业学术论文排版
  • UEVR Mod开发:OpenVR与OpenXR运行时接口深度对比与配置实战
  • AI身份管理:构建可验证的运行时指纹与行为水印体系
  • Godot 2D专业游戏开发指南:从架构到发布的进阶实践
  • Hooks 之后,为什么前端仍需要“包裹”能力?
  • AI+Cordova零代码开发APP实战指南
  • Android开发环境搭建与基础开发指南
  • 广汽埃安SY动力电池排线故障排查:电压温度采集异常维修指南
  • STM32 SPI通信原理与多设备扩展实战
  • C++ Nameof宏:告别硬编码字符串,实现编译期标识符名获取
  • 《荒野大镖客2》打包MOD+送修改器 西部开放世界顶配整合
  • C# yeild的使用
  • 基于视频动态目标无感定位技术智慧城市全栈解决方案
  • C++双向链表调试实战:用GDB和Valgrind解决内存泄漏与指针错误
  • Yii框架登录功能实现与安全实践
  • Inkling生产级语言模型:本地部署、数据隐私与工程实践指南
  • 保姆级】从零学会LangChain调用大模型!统一接口+代码实战
  • Unity手游微信登录与分享功能集成实战:从环境配置到真机调试
  • Java开发环境搭建与JDK配置全攻略
  • Godot 4项目模板:模块化架构与工程化开发实践指南
  • SDRAM控制器核心模块解析:防火墙、旋转引擎与内存优化实战