与Chart进行交互
这个库可以允许你最大化地定制Chart图形的点击和手势动作等事件,并通过回调方法去处理相关的事件。
开启/关闭 交互
setTouchEnabled(boolean enabled)
使用此方法开启/关闭 所有的与Chart交互的点击事件。setDragEnabled(boolean enabled)
开启/关闭 拖拽(移动镜头)Chart。setScaleEnabled(boolean enabled)
开启/关闭 在Chart的两个轴方向上的缩放。setScaleXEnabled(boolean enabled)
开启/关闭X轴方向上的缩放setScaleYEnabled(boolean enabled)
开启/关闭Y轴方向上的缩放setPinchZoom(boolean enabled)
如果设置为true,pinch-zooming则为开启。若是关闭,则X轴和Y轴只能进行单独的缩放。(译者,这个地方实测过,当设置为true时,缩放是能同时影响X,Y轴两个方向的。)setDoubleTapToZoomEnabled(boolean enabled)
通过将其设置为false来禁止双击放大Chart。
Chart 猛冲(fling,印象中就是手指滑动导致界面的滑动)/减速
setDragDecelerationEnabled(boolean enabled)
如果设置为true,Chart将在点击结束后再滑动一段距离。setDragDecelerationFrictionCoef(float coef)
减速摩擦系数在这个范围[0,1)。系数越高,则表示降速越慢,举个例子,当设置为0时,在点击结束之后便立即结束。1是非法的值,如果设为1,则会自动的转为0.9999。
高亮数值
在highlightning section中描述了如何通过手势或者代码使entries高亮。
手势回调
OnChartGestureListener
在对Chart有相关的手势动作时,可以做出相应的回应。
public interface OnChartGestureListener {
/**
* 当有一个手势动作出现在chart中将会回调这个方法(ACTION_DOWN)
*
* @param me
* @param lastPerformedGesture
*/
void onChartGestureStart(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture);
/**
* 当有一个手势动作结束将会回调这个方法 (ACTION_UP, ACTION_CANCEL)
*
* @param me
* @param lastPerformedGesture
*/
void onChartGestureEnd(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture);
/**
* 当有长按事件发生时将会回调这个方法
*
* @param me
*/
public void onChartLongPressed(MotionEvent me);
/**
* 当有Chart被双击时将会回调这个方法
*
* @param me
*/
public void onChartDoubleTapped(MotionEvent me);
/**
* 当有Chart被单击时将会回调这个方法
*
* @param me
*/
public void onChartSingleTapped(MotionEvent me);
/**
* 当有Chart被滑动将会回调这个方法
*
* @param me1
* @param me2
* @param velocityX
* @param velocityY
*/
public void onChartFling(MotionEvent me1, MotionEvent me2, float velocityX, float velocityY);
/**
* 当有缩放的手势作用在Chart上将会回调该方法
*
* @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);
/**
* 当Chart通过手势产生移动时会回调该方法
*
* @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中。
chart.setOnChartGestureListener(this);
复制代码