1. 程式人生 > >2.與圖表的互動Interaction with the Chart

2.與圖表的互動Interaction with the Chart

該庫允許您完全自定義與圖表檢視的可能觸控(和手勢)互動,並通過回撥方法對互動作出反應。

啟用/禁用互動

  • 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。

突出顯示值

手勢回撥

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);