美文网首页
ScaleGestureDetector在两指距离过短时,缩放终

ScaleGestureDetector在两指距离过短时,缩放终

作者: sollian | 来源:发表于2020-02-14 10:57 被阅读0次

问题描述

ScaleGestureDetector是用来帮助检测缩放事件的类,可以借助它来实现图片的放大缩小功能。
使用过程中发现,当执行缩小操作时,两指距离达到一定值后,缩放会被终止,也就是有个最小的检测阈值。

调查

经过调试,发现调用onScaleEnd方法的代码在这里:

if (!inAnchoredScaleMode() && mInProgress && (span < mMinSpan || configChanged)) {
    mListener.onScaleEnd(this);
    mInProgress = false;
    mInitialSpan = span;
}

span是当前两指的距离,mMinSpan就是这个距离阈值。当span<mMinSpan,其他条件也满足时,就触发了onScaleEnd方法,缩放终止。

mMinSpan的取值:

mMinSpan = res.getDimensionPixelSize(
                    com.android.internal.R.dimen.config_minScalingSpan);

在sdk目录的⁨platforms⁩ ▸ ⁨android-26⁩ ▸ ⁨data⁩ ▸ ⁨res⁩⁩ ▸ values⁩ ▸ config.xml中可以找到这个值:

<dimen name="config_minScalingSpan">27mm</dimen>

是一个固定27毫米的长度。

修改

如果觉得27毫米的长度有点大,可以通过反射修改这个值

相关文章

网友评论

      本文标题:ScaleGestureDetector在两指距离过短时,缩放终

      本文链接:https://www.haomeiwen.com/subject/pwkdfhtx.html