HarmonyOS 鸿蒙Next 使用三方库 ImageKnife 展示的网络图片如何添加手势操作(单击、双击)

发布于 1周前 作者 ionicwang 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 使用三方库 ImageKnife 展示的网络图片如何添加手势操作(单击、双击)

使用三方库 ImageKnife 展示的网络图片如何添加手势操作(单击、双击)?

ImageKnife参考文档:
https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fimageknife

之前用系统原生组件Image,有对图片的单击、双击处理,通过给image添加手势(.gesture)实现的。现在更换为ImageKnife,找不到地方添加了。

ImageKnife三方库实现图片展示代码:
ImageKnifeComponent({
imageKnifeOption: {
loadSrc:item.url,
rawLifeCycle:ImageKnifeDrawFactory.createRoundLifeCycle(5,"#ff00ff",30),

} }) .width(‘100%’) .padding(5)



============================




之前原生Image组件实现代码:
 
Image(item.url)
.width(‘100%’)
.height(‘100%’)
.objectFit(ImageFit.Contain)// Contain、Cover
.padding(5)
.copyOption(CopyOptions.None) //是否支持复制
.draggable(false) //拖拽效果
.gesture(
//组合手势 互斥识别(Exclusive)写在前面优先识别
GestureGroup(GestureMode.Exclusive,
//双击
TapGesture({ count: 2 })
.onAction(() => {
console.log(‘双击图片了’)
}),
//单击
TapGesture({ count: 1 })
.onAction(() => {
console.log(‘单击图片了’)
if (item.copyright != ‘’) {
//点击图片打开web链接
routerWebPage.routerWebPage(item.copyright, item.title)
} else {
//显示与隐藏标题、图说
}
})
)
) 


更多关于HarmonyOS 鸿蒙Next 使用三方库 ImageKnife 展示的网络图片如何添加手势操作(单击、双击)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
可以使用priorityGesture:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-gesture-events-binding-0000001774120190#ZH-CN_TOPIC_0000001774120190__parallelgesture%E5%B9%B6%E8%A1%8C%E6%89%8B%E5%8A%BF%E7%BB%91%E5%AE%9A%E6%96%B9%E6%B3%95
这边测试绑定时生效的
import { ImageKnifeComponent, ImageKnifeOption } from '[@ohos](/user/ohos)/imageknife'

@Entry @Component struct Index { @State message: string = ‘Hello World’ @State option: ImageKnifeOption = { loadSrc: $r(‘app.media.startIcon’) }

build() { Row() { Column() { Text(this.message) .fontSize(50) .fontWeight(FontWeight.Bold)

ImageKnifeComponent({ imageKnifeOption: this.option }) .width(300) .height(300) .priorityGesture( //组合手势 互斥识别(Exclusive)写在前面优先识别 GestureGroup(GestureMode.Exclusive, //双击 TapGesture({ count: 2 }) .onAction(() => { console.log(‘双击图片了’) }), //单击 TapGesture({ count: 1 }) .onAction(() => { console.log(‘单击图片了’) }) ) )

}.width(‘100%’) }.height(‘100%’) } }<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

更多关于HarmonyOS 鸿蒙Next 使用三方库 ImageKnife 展示的网络图片如何添加手势操作(单击、双击)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,若你想在使用ImageKnife库展示的网络图片上添加手势操作(如单击、双击),可以通过以下方式实现:

  1. 集成手势识别库:首先,确保你的项目中已经集成了ImageKnife库用于图片加载和显示。接着,可以引入一个手势识别库,如GestureDetector,来检测用户的手势操作。

  2. 设置GestureDetector:在ImageKnife的ImageView组件上设置GestureDetector,用于监听手势事件。你需要重写onTouchEvent方法来处理手势识别器传递的事件。

  3. 区分手势类型:在GestureDetector的回调方法中,通过判断MotionEvent的类型来区分单击、双击等手势。例如,通过判断两次点击的时间间隔来识别双击事件。

  4. 处理手势事件:根据识别到的手势类型(单击、双击等),在回调方法中执行相应的逻辑处理,比如弹出菜单、放大图片等。

  5. 测试与优化:在真实设备或模拟器上测试手势操作的响应情况,确保手势识别准确且流畅,必要时对识别逻辑进行微调。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部