能否提供图片预览的官方实现?

​应用内图片列表预览,可滑动查看图片列表,单张图片支持双击缩放、手势缩放、拖动查看大图。

当前的困难:

当前借鉴了几个三方库可实现单张图片双击缩放、手势缩放、拖动查看大图。

https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Flargeimage

https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fimageviewzoom

但是在 Swiper 组件中图片缩放后,存在两个问题:

1.滑动手势冲突,滑动手势全被图片控件消费。

2.图片缩放后如何做滑动边界判断。​

HarmonyOS
2024-11-19 10:50:11
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

​问题可参考:

(1)图库源码:​https://gitee.com/openharmony/applications_photos/tree/master

主要方案实现思路是Swiper+Image+各种手势处理。

关键代码:

图片Item组件。

applications_photos/ common / src / main / ets / default /view/PhotoItem.ets

手势处理逻辑:

PanGesture…

冲突处理逻辑:​

.onTouch((event?: TouchEvent) => { 
  this.dealTouchEvent(event as TouchEvent); 
  this.eventPipeline?.onTouch(event as TouchEvent); 
})

​手势管道处理工具:

applications_photos/common/src/main/ets/default/model/browser/photo/EventPipeline.ts

设置swiper滑动状态逻辑:​

public setSwipeStatus(disable: Boolean): void { 
  this.broadCast.emit(PhotoConstants.SET_DISABLE_SWIPE, [disable]); 
}

​整体逻辑是在手势管道中通过事件通知swiper禁用或启用滑动手势。OH当前能力是可以实现的

图片轮播页面:

applications_photos/ common / src / main / ets / default /view/PhotoSwiper.ets

(2)其他的有demo。

电子相册demo:​https://gitee.com/harmonyos/codelabs/tree/master/HarmonyOS_NEXT/ElectronicAlbum

分享
微博
QQ
微信
回复
2024-11-19 17:03:36
相关问题
HarmonyOS 如何实现图片预览
20浏览 • 1回复 待解决
HarmonyOS 希望官方提供日历组件
280浏览 • 1回复 待解决
如何实现图片大图预览效果
2124浏览 • 1回复 待解决
HarmonyOS是否有官方提供加锁方法
297浏览 • 1回复 待解决
卡片能否通过预览器进行预览
603浏览 • 1回复 待解决
如何实现图片预览,有人知道吗?
642浏览 • 1回复 待解决
HarmonyOS 能否提供脚本打包
66浏览 • 1回复 待解决
HarmonyOS 能否提供折线图组件
462浏览 • 1回复 待解决
能否提供命令行构建?
753浏览 • 1回复 待解决
HarmonyOS能否提供数据存储样例工程
359浏览 • 1回复 待解决
使用预览实现多端预览
1092浏览 • 1回复 待解决
HarmonyOS 能否提供Web样例工程代码?
209浏览 • 1回复 待解决
harmonyos开发能否尽快提供map组件啊
7167浏览 • 2回复 待解决
如何实现pdf文件预览
511浏览 • 1回复 待解决