运行时与 MPAndroidChart 的用户交互

User Interaction at runtime with MPAndroidChart

首先我要说 MPAndroidChart 很棒,你带来了一些功能和定制,这让它非常酷。

我希望添加与 MPAndroidChart 的用户交互,

我的要求是:

在组合图表(折线图和气泡图)中,我希望用户在 MPAndroidChart 的 x,y 坐标 space 中拖动和移动数据点。

我想让用户拖动显示的数据, 如何实现这一点,class 可以通过子classed 来实现。

为图形数据添加交互性 - 你需要一个带有平移手势的视图

需要子class CombinedChartView, LineChartRenderer, BubbleChartRenderer

创建渲染器对象,- 此渲染器对象需要替换为在 CombinedChartView 中创建的渲染器,因此我们将其子class 并将渲染器对象替换为我们子classed 的渲染器对象版本。

在我们的CombinedChartView(subclass)中覆盖数据变量的getter,setter,因此在分配数据时,我们用Pan手势创建了一次UIView,取它是UIView中对应的ChartDataEntry的引用,因此在UIView的Pan处理函数中我们改变了这个DataEntry的xIndex等并调用setNeedsDisplay。(UIView的框架位置还不知道,保持原点)

在我们的渲染器 class(LineChartRenderer 或 BubbleChartRenderer 的子class)中覆盖 DrawDataSet 函数 - 这是实际绘图发生的地方,这是我们可以获得精确 x 的地方, y 为我们的 UIView 坐标,我们最终为在 CombinedChartView 中创建的视图设置框架位置。

就是这样,当我们平移 UIView 时,视图将平移并依次移动 ChartDataEntry 的 xIndex