上一篇讲了创建视图以及简单实现,这篇咱们讲图表的交互!
上一篇:MPAndroidChart的详细使用——图表的交互
下一篇:MPAndroidChart的详细使用——高亮
一、开启 / 关闭图表交互
关于图表交互开关的这些属性,都是你这个View的属性,而不是DataSet和Data的~
这些属性都是根据官方文档翻译来的(浏览器自带翻译),再加上自己的理解修改一下下~
属性 | 作用 |
---|---|
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。 |
关于这两条属性,首先setDragDecelerationEnabled(boolean enabled);
的属性是指,你滑动图表后,是否设置继续滑动,true表示继续,false则表示滑动图表后不继续滑动。setDragDecelerationFrictionCoef(float coef);
这个方法是指你滑动后继续滑动的摩擦系数,这个值越小表示摩擦系数越大,也就是滑动后继续滑动的具体越小。
三、交互监听接口回调(手势事件回调)
使用OnChartGestureListener可以将你对图表上的手势做出回调,只需让应该接收回调的类实现此接口,并将其设置为图表的侦听器
public interface OnChartGestureListener {
//手指触摸图表时监听回调
void onChartGestureStart(MotionEvent me, ChartGesture lastPerformedGesture);
//手指离开图表时监听回调
void onChartGestureEnd(MotionEvent me, ChartGesture lastPerformedGesture);
//长按监听事件回调
public void onChartLongPressed(MotionEvent me);
//双击监听事件回调
public void onChartDoubleTapped(MotionEvent me);
//单击监听事件回调
public void onChartSingleTapped(MotionEvent me);
//滚动监听事件回调
public void onChartFling(MotionEvent me1, MotionEvent me2, float velocityX, float velocityY);
//通过按压缩放手势缩放/放大时回调
public void onChartScale(MotionEvent me, float scaleX, float scaleY);
//通过拖动手势移动/转换图表时的回调
public void onChartTranslate(MotionEvent me, float dX, float dY);
}