当前位置: 首页 > wzjs >正文

免费解析素材网站小程序开发视频教程

免费解析素材网站,小程序开发视频教程,sem推广竞价,商场设计调研温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! HarmonyOS NEXT ImageItemView组件深度剖析:手势交互与动画实现(二) 一、手势系统架构 .gesture(GestureGroup(GestureMode.Exclusiv…

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦!

HarmonyOS NEXT ImageItemView组件深度剖析:手势交互与动画实现(二)

一、手势系统架构
.gesture(GestureGroup(GestureMode.Exclusive, // 手势互斥模式TapGesture({ count: 2 }), // 双击TapGesture({ count: 1 }), // 单击PinchGesture({ fingers: 2 }), // 双指捏合PanGesture({ fingers: 1 }) // 单指滑动)
)
  • GestureGroup:手势组合容器,管理多个手势的相互关系
  • GestureMode.Exclusive:互斥模式,同一时刻只有一个手势生效
  • 优先级顺序:后声明的手势优先级更高(这里双击手势优先于单击)
二、双击缩放实现
TapGesture({ count: 2 }).onAction(() => {if (this.imageScaleInfo.scaleValue > 默认值) {// 缩小逻辑fn = () => {this.isEnableSwipe = true; // 启用滑动切换this.imageScaleInfo.reset(); // 重置缩放this.matrix = matrix4.identity(); // 重置变换矩阵};} else {// 放大逻辑fn = () => {this.isEnableSwipe = false; // 禁用滑动切换const ratio = this.calcFitScaleRatio(...); // 计算适配比例this.matrix = matrix4.identity().scale({x: ratio, y: ratio});};}runWithAnimation(fn); // 带动画执行})
  • 状态切换逻辑
    • 当前已放大 → 双击恢复默认
    • 当前默认状态 → 双击放大至屏幕适配尺寸
  • 关键方法
    • calcFitScaleRatio:计算填满屏幕所需比例
    • runWithAnimation:HarmonyOS动画API,实现平滑过渡
三、捏合缩放实现
PinchGesture({ fingers: 2 }).onActionUpdate((event) => {// 实时计算缩放比例this.imageScaleInfo.scaleValue = 上次值 * event.scale;// 边界限制const maxScale = 最大缩放值 * 1.3; // 允许超出20%的弹性效果const minScale = 默认值 * 0.7; // 允许缩小到70%this.imageScaleInfo.scaleValue = Math.min(maxScale, Math.max(minScale, this.imageScaleInfo.scaleValue));// 应用矩阵变换this.matrix = matrix4.identity().scale({x: 当前比例,y: 当前比例});}).onActionEnd(() => {// 弹性回弹处理if (当前比例 < 默认值) {runWithAnimation(() => 重置到默认值);} else if (当前比例 > 最大缩放值) {runWithAnimation(() => 调整到最大值);}})
  • 核心参数
    • event.scale:捏合手势的实时缩放系数(>1放大,<1缩小)
    • lastValue:记录上次缩放值,保证连续性
  • 边界处理技巧
    • 允许超出最大/最小值一定比例(提升操作手感)
    • 手势结束后执行弹性动画
四、滑动位移实现
PanGesture({ fingers: 1 }).onActionUpdate((event) => {if (当前是默认缩放比例) return; // 默认状态禁止滑动// 计算新偏移量this.imageOffsetInfo.currentX = 上次X + event.offsetX;this.imageOffsetInfo.currentY = 上次Y + event.offsetY;}).onActionEnd(() => {// 保存当前偏移量this.imageOffsetInfo.stash();})
  • 位移条件
    • 仅在放大状态下允许滑动
    • 默认状态下的滑动留给父组件处理(用于图片切换)
  • 坐标计算
    • offsetX/Y:手势相对于起点的位移量
    • 需要叠加上次的偏移量实现连续移动
五、动画系统应用
runWithAnimation(() => {// 状态变更操作this.imageScaleInfo.scaleValue = 目标值;this.matrix = 新矩阵;
});
  • 动画原理
    • 包裹在runWithAnimation中的状态变更会自动应用动画
    • 系统默认使用弹性动画(spring)效果
  • 自定义动画
    runWithAnimation(() => {// 操作
    }, {duration: 300, // 动画时长curve: Curve.EaseInOut // 缓动曲线
    })
    
六、矩阵变换原理
matrix4.identity() // 创建单位矩阵.scale({ x: 2, y: 2 }) // 缩放变换.translate({ x: 100, y: 50 }) // 位移变换.copy(); // 创建新实例
  • 矩阵操作顺序
    • 先缩放后位移(矩阵乘法顺序,实际是反向应用)
    • 建议先执行缩放再执行位移
  • 坐标系特点
    • 以组件中心点为变换原点
    • 位移量基于缩放后的坐标系

文章转载自:

http://6te7JGCt.yqrgq.cn
http://ZcX0XtiC.yqrgq.cn
http://RAk7oOFh.yqrgq.cn
http://OkfJDuEM.yqrgq.cn
http://eKiLh7sL.yqrgq.cn
http://UMe5mpqg.yqrgq.cn
http://QfvDQtrQ.yqrgq.cn
http://oojdySiz.yqrgq.cn
http://86nhgudk.yqrgq.cn
http://N4iLmYd7.yqrgq.cn
http://8lPjhmV3.yqrgq.cn
http://Be6Q7Jij.yqrgq.cn
http://HsTQNaMl.yqrgq.cn
http://9hM9kzXz.yqrgq.cn
http://2Adg6qyk.yqrgq.cn
http://63lnDGXS.yqrgq.cn
http://6GvZZMtS.yqrgq.cn
http://gh6HJE2v.yqrgq.cn
http://u4WCItJu.yqrgq.cn
http://wEBvXcn1.yqrgq.cn
http://UteNrpAx.yqrgq.cn
http://A5pZOgkS.yqrgq.cn
http://cbHpm7iH.yqrgq.cn
http://oQODlaOy.yqrgq.cn
http://bFYsTq3D.yqrgq.cn
http://xAdqpqQB.yqrgq.cn
http://Y3tYX9e8.yqrgq.cn
http://XbZ1ZJyv.yqrgq.cn
http://SLmPoaHx.yqrgq.cn
http://ouDj7ZuO.yqrgq.cn
http://www.dtcms.com/wzjs/712511.html

相关文章:

  • 上海建筑网站建个大型网站要多少钱
  • 建筑设计网站国外网页美工设计的工作流程?
  • qq免费建网站建模培训机构排名
  • 湖州公司做网站wordpress ios 源码
  • 义乌水务建设集团官方网站做印刷网站公司哪家好
  • 注册免费微网站上海网页设计方法
  • 网站推广策划方案书做网站那些好
  • .net网站开发简介wordpress教程视频 下载
  • 互联网做网站属于什么行业莱西市建设局网站
  • 黄页网站介绍网站的扁平化设计理念
  • 那个网站做室内比较好的h5页面制作app
  • 天宁常州做网站江苏建设网站公司
  • 做外贸网站效果图服装网站建设的技术可行性
  • 做网站的报价方案软件开发工具与平台
  • 寺庙网站开发策划书企业做网站公司排名
  • 仙桃建设网站打折网站模板
  • 网站开发设计公司图文设计用什么软件
  • 社区网站建设论文百度seo培训班
  • 网站运营管理员具体做什么wordpress主题开发实例
  • 网站源码上传图片出错中国建设工程项目网
  • 永久免费网站建设整合营销传播的明显特征是
  • 宁波网站建设速成写作网站哪个最好
  • 申报课题所需的网站怎么做遵义会议在线
  • 手机网站自助建站系统中文wordpress教程
  • 德语网站制作提供商城网站建设
  • 网页入口网站推广别人给公司做的网站字体侵权吗
  • 天王手表官方网站网站建设在实际工作中的意义
  • 做网站实现登陆功能昆明app外包
  • 外国设计网站推荐四川省建设厅职称网站
  • 湛蓝 网站开发石家庄市桥西区建设局网站