褥师此 发表于 2025-6-28 15:32:35

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
publicclass 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语言##仓颉##休闲娱乐#

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

焦尔蕾 发表于 2025-11-10 16:28:16

谢谢分享,辛苦了

喳谍 发表于 2025-11-27 03:47:50

不错,里面软件多更新就更好了

忙贬 发表于 2025-12-4 13:39:55

感谢分享,学习下。

喳谍 发表于 2026-1-9 07:38:40

分享、互助 让互联网精神温暖你我

釉她 发表于 2026-1-11 23:11:18

收藏一下   不知道什么时候能用到

袁曼妮 发表于 2026-1-16 07:39:26

这个有用。

珠尿娜 发表于 2026-1-21 13:42:53

前排留名,哈哈哈

阎一禾 发表于 2026-1-23 03:36:35

感谢分享,下载保存了,貌似很强大

馏栩梓 发表于 2026-1-24 04:42:20

收藏一下   不知道什么时候能用到

卜笑 发表于 2026-1-25 12:31:36

喜欢鼓捣这些软件,现在用得少,谢谢分享!

晖顶蝇 发表于 2026-1-28 05:51:45

鼓励转贴优秀软件安全工具和文档!

于映雪 发表于 2026-1-30 05:42:11

感谢,下载保存了

岑韬哎 发表于 2026-2-9 09:43:41

谢谢楼主提供!

数察啜 发表于 2026-2-10 13:19:41

感谢,下载保存了

梁丘眉 发表于 2026-2-11 03:41:57

谢谢分享,辛苦了

笙芝 发表于 2026-2-11 04:48:10

谢谢分享,辛苦了

秤陷曲 发表于 2026-2-12 01:10:55

热心回复!

睁扼妤 发表于 2026-2-13 19:25:41

懂技术并乐意极积无私分享的人越来越少。珍惜

锄淫鲷 发表于 2026-2-14 01:12:04

用心讨论,共获提升!
页: [1] 2
查看完整版本: HarmonyOS NEXT仓颉开发语言实战案例:图片预览器