使用UIScrollView可以轻松实现图片缩放,图片放大后支持位移滑动查看。而目前HarmonyOS上没有看到相关组件,无论是示例项目 HarmonyOS-Cases/Cases 还是开源的 PhotoView,ImageViewZoom,subsampling-scale-image-view\_bak 等体验都不完善。有没有比较完善的图片缩放组件?
使用UIScrollView可以轻松实现图片缩放,图片放大后支持位移滑动查看。而目前HarmonyOS上没有看到相关组件,无论是示例项目 HarmonyOS-Cases/Cases 还是开源的 PhotoView,ImageViewZoom,subsampling-scale-image-view\_bak 等体验都不完善。有没有比较完善的图片缩放组件?
1 回答1.1k 阅读✓ 已解决
1 回答1.4k 阅读
1 回答1.2k 阅读
1 回答1.1k 阅读
1 回答1.1k 阅读
1 回答992 阅读
1 回答972 阅读
使用swiper或scroll组件都可以实现,提供一种方案:
主要实现功能效果:
1、双指捏合对图片进行放大,缩小,拖拽移动操作,且图片放大过程中也可同时进行拖拽操作
主要实现方案:
(1)使用组合手势GestureGroup,同时绑定捏合手势PinchGesture和滑动手势PanGesture,设置组合手势识别模式为并行识别模式:Parallel,并行识别组合手势中注册的手势将同时进行识别,直到所有手势识别结束。并行识别手势组合中的手势进行识别时互不影响
(2)在对图片进行双指捏合操作时,优先触发绑定的PinchGesture手势,在捏合手势的onActionUpdate和onActionEnd回调中修改scale参数,进行图片缩放处理;当滑动拖拽图片时,识别绑定的PanGesture手势,在pan手势的onActionUpdate回调中获取偏移位置,通过translate进行位移操作,来对图片进行拖拽移动
2、图片在放大的情况下也可切换到后一张图或者前一张图
主要实现方案:
(1)在panGesture手势的onActionUpdate回调中获取偏移位置,计算图片放大后分别往左或者往右拖动时是否到达边界,记录向左或向右边界的状态
(2)通过绑定onTouch事件,在滑动的过程中在oTouch的move事件中通过自定义方法根据传入的手指滑动方向和拖动到达的边界方向来判断返回后分别执行scaleEnable和scaleUnEnable方法,修改panGesture的panDirection滑动方向,边界状态将panDirection置为None进行翻页,反之为正常滑动方向进行滑动处理