运行时与 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
首先我要说 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