Closed dtboy1995 closed 6 years ago
你好,已经知道了。对于抖动,这个bug我会修复,主要是使用Scale的手势去处理,之前采用了传统的Event去进行手势进行缩放发现突变太快,就会抖动。对于为什么采用了View的大小来响应手势主要是考虑到简易实现的问题。如果要通过屏幕区域进行专递事件的话要进行更多的处理。所有暂时采用View自身进行传递。你也可以通过自己的想法进行优化,之后提交到这个Issues或者其他,我会考虑加入。这个Library还有很多不足,多见谅。
call this fixed the bug
public class TreeView extends ViewGroup implements ScaleGestureDetector.OnScaleGestureListener {
private ScaleGestureDetector mGestureDetector;
mGestureDetector = new ScaleGestureDetector(context,this);
@Override
public boolean onTouchEvent(MotionEvent event) {
mGestureDetector.onTouchEvent(event);
return mViewScaleHandler.move(event);
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
float scaleFactor = detector.getScaleFactor();
setScaleX(scaleFactor);
setScaleY(scaleFactor);
return false;
}
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
return true;
}
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
}
}
and ingore the code in ViewScaleHandler.java
// if (newDist > oldDist + midDx) {//增大
//
// if (v <= max_scale) {
// ViewHelper.setScaleX(mView, v);
// ViewHelper.setScaleY(mView, v);
// oldDist = newDist;
// }
//
// } else if (newDist < oldDist - midDx) {//减小
//
// if (v > min_scale) {
// ViewHelper.setScaleX(mView, v);
// ViewHelper.setScaleY(mView, v);
// oldDist = newDist;
// }
// }
谢谢了,辛苦了大神,已get
您好大神,在使用库的时候,发现了手势缩放的时候View在抖动,是什么原因呢,测试环境(小米手机Android6.0),求指导,很棒的library
顺便问您一下,而且响应区域就是这个View本身的区域吧,这是您故意设计的呢还是什么,我将其背景设置为黑色后,发现只有该View区域才可响应手势,离开了就失效了,如果可以响应全屏幕的区域,那就真的体验很好了。