news 2026/9/25 2:03:00

LargeImageModel完整API清单:largeImage4cj流式配置指南,一张表看懂全部接口

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LargeImageModel完整API清单:largeImage4cj流式配置指南,一张表看懂全部接口

LargeImageModel完整API清单:largeImage4cj流式配置指南,一张表看懂全部接口

【免费下载链接】large-image-cj图像加载库,支持加载、缩放和拖动项目地址: https://gitcode.com/Cangjie-TPC/large-image-cj

largeImage4cj 是一个支持加载、缩放(放大/缩小)和拖动查看的图像加载库,核心由LargeImageModel图片数据封装类驱动。本文用一张表整理它的全部 API 接口,并讲解流式(链式)配置写法,帮助你快速完成缩放比例、拖动边界、事件监听等配置。

为什么要用 largeImage4cj?

普通图片组件放大后容易模糊,largeImage4cj 专为大图浏览设计:

  • 📷 支持 Uri 地址、resources 资源两种图片加载方式
  • 🤏 双指捏合缩放,双击快速放大/还原
  • 👆 放大后单指拖动查看细节,支持惯性滑动
  • 🎛 所有配置接口集中封装在LargeImageModel中,一目了然

库的源码位于 large_image_model.cj 与 large_image.cj,接口说明可参考 doc/feature_api.md。

LargeImageModel 接口清单:一张表看懂全部接口

分类接口作用说明默认值
初始化initMatrix()初始化渲染矩阵,必须前置调用一次—
图片源setImageURI(src)从 Uri 地址加载图片—
图片源setImageResource(src)从 resources 包加载图片—
手势开关setZoomEnabled(enabled)是否支持缩放true
手势开关setPanEnabled(enabled)是否支持平移拖动true
缩放控制setMaxScale(scale)设置最大缩放比例4.0
缩放控制setMinimumDpi(dpi)按屏幕密度设置最大缩放(DPI 越小放得越大)屏幕密度
缩放控制setMaximumDpi(dpi)按屏幕密度设置最小缩放屏幕密度
拖动边界setPanLimit(limit)设置图片可拖动的范围(见下表)PAN_LIMIT_INSIDE
外观setTileBackgroundColor(color)设置 tile 背景颜色(UInt32 色值)黑色
外观setOrientation(degrees)设置图片旋转角度0.0
状态查询canScroll()判断当前是否可拖动—
状态查询getLoadedImageWidth()/getLoadedImageHeight()获取源图像宽高—
状态查询getMaxScale()/getMinScale()获取最大/最小缩放比例—
状态查询getOrientation()获取当前旋转角度—
状态操作setOffset(x, y)设置图片相对视图左上角的偏移—
状态操作resetScaleAndCenter()重置缩放比和图片中心点—
事件监听setSingleTapListener(listener)单击事件监听—
事件监听setLongPressListener(listener)长按事件监听—
事件监听setDoubleTapListener(listener)双击事件监听(缩放关闭时生效)—
事件监听setOnStateChangedListener(listener)缩放状态切换监听—
事件监听setOnImageEventListener(listener)图片加载成功/失败监听—

流式配置指南:链式调用快速上手

所有set系列接口都会返回LargeImageModel自身,因此支持流式(链式)配置:一行代码串联多个设置,无需反复书写变量名。

model.initMatrix() model.setImageResource(@r(app.media.tiger)) model.setMaxScale(2.0)

上面是 entry/src/main/cangjie/image_display.cj 中的真实配置:初始化矩阵 → 设置图片资源 → 限制最大放大 2 倍,三步完成一张可缩放大图的全部配置。

💡 注意:initMatrix()因@Publish可观测属性触发 UI 更新,必须在其他配置之前调用一次,确保属性全部初始化完成。

拖动边界三常量:PAN_LIMIT 对比表

setPanLimit决定"图片最多能拖到哪",通过三个常量控制,源码见 large_image_model.cj:

常量值行为描述适用场景
PAN_LIMIT_INSIDE1.0图片只能在视图范围内平移,边界不会超出视图图片库、相册(推荐)
PAN_LIMIT_OUTSIDE2.0允许图片拖出视图边缘,直到刚好完全移出屏幕自由浏览型场景
PAN_LIMIT_CENTER3.0以中心为基准平移,任一角到达屏幕中心即停止需要将任意位置拖到正中心的场景

示例工程中通过 entry/src/main/cangjie/configuration.cj 动态切换三种模式,可以直观感受差异。

事件监听接口速查

5 个监听器接口定义在 largeImage/src/main/cangjie/interfaces.cj:

监听器接口回调方法触发时机
OnSingleTapListeneronSingleTapConfirmed(event)单击确认时
OnLongPressListeneronLongPress(event)长按时
OnDoubleTapListeneronDoubleTap(event)双击时(zoomEnabled为 false 时生效)
OnStateChangedListeneronScaleChanged(newScale)缩放比例变化后
OnImageEventListeneronImageLoaded()/onImageLoadError()图片加载成功 / 失败

常见配置组合参考

需求场景推荐配置组合
标准图片库setPanLimit(PAN_LIMIT_INSIDE)(默认值,无需额外配置)
只放大、禁止拖动setPanEnabled(false),双击仅在中心点放大
高倍放大看图setMinimumDpi(50),放直到明显像素化为止
快速双击变焦双击直接跳到maxScale,立即响应无动画
居中查看细节setPanLimit(PAN_LIMIT_CENTER),任意位置拖到屏幕中心

使用注意事项

  • ⚠️initMatrix()必须首次前置调用,否则矩阵未初始化
  • ⚠️canScroll()只有在"支持缩放 且 当前缩放比 > 1.0"时才返回true,即未放大时拖动不生效
  • ⚠️ 双击行为与setZoomEnabled相关:开启缩放时双击执行放大/还原;关闭时才走OnDoubleTapListener自定义逻辑
  • 📌 当前版本暂不支持自定义拖拽/滑动手势的高级效果,详见 README.md 的"约束与限制"

更多功能演示可运行示例工程,入口在 entry/src/main/cangjie/index.cj,包含基础特性、图片展示、事件处理、高级事件与配置五个演示页。

【免费下载链接】large-image-cj图像加载库,支持加载、缩放和拖动项目地址: https://gitcode.com/Cangjie-TPC/large-image-cj

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/25 2:02:34

低成本开源项目选型指南:避开“免费”陷阱,按场景实用推荐

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 2:01:48

STM32入门指南:从零搭建开发环境到第一个工程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 2:01:02

2023年STM32从零入门实战:环境搭建、外设开发与项目进阶指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 1:59:56

模拟电路故障诊断:神经网络与专家系统融合方案

简介:这份《基于神经网络的模拟电路故障诊断专家系统研究》是一篇面向电子工程、故障诊断领域研究者与学生的专业学术论文文档,其重点解决模拟电路软故障因器件容差难以识别的问题。资源共1个doc文件,压缩包大小约2.04MB,包含完整…

作者头像 李华
网站建设 2026/9/25 1:59:53

三菱Q64AD模拟量采集实战:从接线、BFM设置到数据转换与避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华