该库允许您完全自定义与图表视图的可能触摸(和手势)交互,并通过回调方法对交互作出反应。
启用/禁用交互
- setTouchEnabled(boolean enabled):启用/禁用与图表的所有可能的触摸交互。
- setDragEnabled(boolean enabled):启用/禁用图表的拖动(平移)。
- setScaleEnabled(boolean enabled):启用/禁用缩放图表上的两个轴。
- setScaleXEnabled(boolean enabled):启用/禁用x轴上的缩放。
- setScaleYEnabled(boolean enabled):启用/禁用y轴缩放。
- setPinchZoom(boolean enabled):如果设置为true,则启用缩放缩放。如果禁用,则可以单独缩放x轴和y轴。
- setDoubleTapToZoomEnabled(boolean enabled):将此设置为false以禁止通过双击来缩放图表。
图表抛掷/减速
- setDragDecelerationEnabled(boolean enabled):如果设置为true,图表会在触摸后继续滚动,默认值:true。
- setDragDecelerationFrictionCoef(float coef):减速摩擦系数[0; 1]间隔,较高的值表示速度将缓慢下降,例如,如果设置为0,它将立即停止。1是无效值,将自动转换为0.9999。
突出显示值
在highlightning section,对如何通过点击手势和编程方式突出显示条目进行了描述。
手势回调
OnChartGestureListener将允许您对图表上的手势做出反应:
public interface OnChartGestureListener {
/**
* Callbacks when a touch-gesture has started on the chart (ACTION_DOWN)
*
* @param me
* @param lastPerformedGesture
*/
void onChartGestureStart(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture);
/**
* Callbacks when a touch-gesture has ended on the chart (ACTION_UP, ACTION_CANCEL)
*
* @param me
* @param lastPerformedGesture
*/
void onChartGestureEnd(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture);
/**
* Callbacks when the chart is longpressed.
*
* @param me
*/
public void onChartLongPressed(MotionEvent me);
/**
* Callbacks when the chart is double-tapped.
*
* @param me
*/
public void onChartDoubleTapped(MotionEvent me);
/**
* Callbacks when the chart is single-tapped.
*
* @param me
*/
public void onChartSingleTapped(MotionEvent me);
/**
* Callbacks then a fling gesture is made on the chart.
*
* @param me1
* @param me2
* @param velocityX
* @param velocityY
*/
public void onChartFling(MotionEvent me1, MotionEvent me2, float velocityX, float velocityY);
/**
* Callbacks when the chart is scaled / zoomed via pinch zoom gesture.
*
* @param me
* @param scaleX scalefactor on the x-axis
* @param scaleY scalefactor on the y-axis
*/
public void onChartScale(MotionEvent me, float scaleX, float scaleY);
/**
* Callbacks when the chart is moved / translated via drag gesture.
*
* @param me
* @param dX translation distance on the x-axis
* @param dY translation distance on the y-axis
*/
public void onChartTranslate(MotionEvent me, float dX, float dY);
}
只需让你的接收回调的类实现这个接口并将其设置为图表的监听器:
chart.setOnChartGestureListener(this);