Android GestureOverlayView参数

时间:2016-11-21 10:53:46

标签: android gesture

我开始尝试使用自定义手势和GestureOverlayView,并注意到一些变量,我不确定它们的用途以及可以和应该分配的值的范围,文档似乎有些模糊:

//Minimum curve angle a stroke must contain before it is recognized as a gesture. 
android:gestureStrokeAngleThreshold
  

我认为这是度数,当我添加" 25"在这里,手势中必须包含锋利的边缘,但实际上,如果我绘制圆形或完美的正方形,它仍会被检测到。

//Minimum length of a stroke before it is recognized as a gesture. 
android:gestureStrokeLengthThreshold    
  

这是dp吗?因为它似乎在较小的屏幕上触发手势更难......

//Squareness threshold of a stroke before it is recognized as a gesture. 
android:gestureStrokeSquarenessThreshold
  这是什么?

修改

好的,我刚刚意识到每个预测都有一个分数值,应该用它来确定所执行的手势是否真的满足要求,所以我添加了一个检查预测的分数是否大于1。 / p>

我仍然很好奇GestureOverlayView中的那些变量正在做什么,所以开导我:)

1 个答案:

答案 0 :(得分:0)

gestureStrokeLengthThreshold肯定不是密度独立的,但显然使用像素。如果要设置与密度无关的阈值,可以在运行时计算gestureStrokeLengthThreshold,如下所示:

    DisplayMetrics metrics = getResources().getDisplayMetrics();
    float normalizedScreenSize = (metrics.heightPixels + metrics.widthPixels) / 2.0f;
    return normalizedScreenSize * GESTURE_LENGTH_THRESHOLD;

GESTURE_LENGTH_THRESHOLD将是表示手势应该有多长的值。值1.0大致是屏幕的大小(从屏幕宽度和高度平均)

我仍然对GestureOverlayView中的其他变量感兴趣,所以如果你知道更多 - 启发我:)