MPAndroidChart Wiki(二)

本文介绍了一个图表库的交互定制功能,包括开启/关闭点击、拖拽、缩放等交互方式,以及通过实现OnChartGestureListener接口来响应各种手势事件。

与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);
复制代码

转载于:https://juejin.im/post/5b1e812ee51d4506d25e2ee9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值