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

HarmonyOS NEXT仓颉开发语言实战案例:图片预览器

上文分享了如何使用仓颉语言实现动态广场,动态广场中有很多图片,本文一下如何使用仓颉语言实现一个图片放大预览器:

看到这个效果,我首先想到的实现方案是弹窗,弹窗的弹出和消失效果为我们节省了很多工作,这里使用的是CustomDialogController。

我们首先实现弹窗内容组件,图片预览可能会有不同数量的图片,我们要做好适配,还要实现翻页效果,所以使用swiper容器最为合适,具体代码如下,大家要注意接收参数的定义和弹窗点击关闭代码的写法:

package ohos_app_cangjie_entry
import ohos.base.*
import ohos.component.*
import ohos.state_manage.*
import ohos.state_macro_manage.*
import cj_res_entry.app
import std.collection.ArrayList
@CustomDialog
public  class imgdialog {var controller: Option<CustomDialogController> = Option.None@Prop var imgList:ArrayList<CJResource>func build() {Swiper(){ForEach(imgList, itemGeneratorFunc: {img:CJResource,index:Int64 =>Image(img).width(100.percent).height(100.percent).objectFit(ImageFit.Contain)})}.width(100.percent).height(100.percent).backgroundColor(Color(0, 0, 0, alpha: 0.6)).onClick({e =>controller.getOrThrow().close()})}
}

回到动态广场,这里要先初始化弹窗对象,并且传入图片列表:

@State var imglist:ArrayList<CJResource> = ArrayList<CJResource>()
var dialogController: CustomDialogController = CustomDialogController(CustomDialogControllerOptions(builder: imgdialog(imgList:imglist),customStyle:true,autoCancel:true
))

在弹窗的配置参数中,设置customStyle为true可以使弹窗全屏展示。最后在点击图片的时候打开弹窗:

imglist = item.getImages()dialogController.open()

今天的内容分享完啦,感谢大家阅读。##HarmonyOS语言##仓颉##休闲娱乐#

相关文章:

  • PyQtNode Editor 第三篇创建节点(节点的定义)
  • 圆周石墨密封流体温度场MATLAB分析(微分求积法求解二维能量方程)
  • python中学物理实验模拟:瞬间推力与摩擦力作用下的物体运动
  • AC-DC-AC间接变频电源设计方案(工频50Hz→20KHz)
  • 【大模型】Query 改写常见Prompt 模板
  • Idea 项目远程开发 Remote Development
  • git使用详解和示例
  • 数字孪生技术引领UI前端设计新革命:实时交互与模拟预测
  • 使用cmake+vs2022编译win环境下grpc(不建议拉取最新版本grpc(注意本文时间是2025/6/28))
  • 【软考--软件设计师】10.2 关系型数据库
  • 实变与泛函题解-心得笔记【16】
  • Dask心得与笔记【2】
  • 《卷积神经网络到Vision Transformer:计算机视觉的十年架构革命》
  • LeetCode--38.外观数列
  • docker部署后端服务的脚本
  • 华为交换机SSH登录报错--Key exchange failed.
  • Java-Scanner类
  • 深入解析Java 内部类
  • 单电机FOC与多电机协同交叉耦合控制Simulink仿真方案
  • 深入浅出:AWS Cognito 认证机制详解