android 手势 GestureDetector onScroll方法的探讨

在封装GPUImage滤镜控件并添加手势处理时,遇到GestureDetector onScroll方法中的distance数据抖动导致视图滑动抖动的问题。问题出现在使用translateX和translateY属性改变视图位置,导致GestureDetector的onScroll方法受到影响。通过分析源码,发现可能与焦点变化有关。最终,通过修改手势处理方法为,解决了抖动问题,但具体原因尚不清楚。
摘要由CSDN通过智能技术生成

最近研究了下 gpuimage的滤镜 , 在封装了滤镜控件后,对滤镜容器设置手势时出现了以下问题:

问题描述

主要问题就是GestureDetector onScroll distance 数据抖动;
在这里插入图片描述
在用手势对象捕捉了dispatchTouchEvent事件后, 本打算 在 onScroll方法中对容器view进行滑动的变化, 第一时间想到使用 translateX和translateY 属性对view进行滑动;

在这里插入图片描述

//sum 每次的移动距离;
mTranslateX += distanceX;
mTranslateY += distanceY;
//设置translate属性;
setTranslationX(mTranslateX);
setTranslationY(mTranslateY);

但是当使用setTranslationX()方法设置属性后,滑动是能滑动,会出现抖动效果,通过打印得知distanceX 会出现两种,一会儿正,一会儿负,导致出现抖动; 用户体验效果很差;

问题原因

Left = x + translationX 理论上是没错的; 只可能的原因是设置了s

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值