15.修改视口

该库具有各种修改视口的方法(图表上可见,视图的目的)。请注意,这些方法只适用的LineChart,BarChart,ScatterChart和CandleStickChart。

下面提到的方法由Chart课程提供。修改视口的另一种方法是通过ViewPortHandler直接访问它(没有图表提供的内部安全性)。这仅适用于熟悉API的高级用户。

请注意,修改视口的所有方法需要在Chart 设置数据后调用。

限制可见的内容

  • setVisibleXRangeMaximum(float maxXRange):设置应该是最大可见的区域的大小(x轴上的范围)。如果这样设置为10,则可以立即查看x轴上不超过10个值,而不滚动。
  • setVisibleXRangeMinimum(float minXRange):设置应该是最小可见的区域的大小(x轴上的范围)。如果这样设置为10,则不能在x轴上进一步放大超过10个值。
  • setVisibleYRangeMaximum(float maxYRange, AxisDependency axis):设置应该是最大可见的区域的大小(y轴上的范围)。您还需要提供此约束应适用的轴。
  • setViewPortOffsets(float left, float top, float right, float bottom):设置当前ViewPort的自定义偏移量(实际图表窗口两侧的偏移量)。设置此操作将阻止图表自动计算其偏移量。使用resetViewPortOffsets()撤消此。仅当您知道您所做的操作时才使用此功能。
  • resetViewPortOffsets():重置通过setViewPortOffsets(…)方法设置的所有自定义偏移量。允许图表再次自动计算所有偏移量。
  • setExtraOffsets(float left, float top, float right, float bottom):设置要附加到自动计算的偏移量的附加偏移量(图表视图周围)。这不会改变自动计算的偏移量,而是增加了额外的空间。

移动视图(目标位置)

  • fitScreen():重置所有缩放和拖动,并使图表完全符合其边界(完全缩小)。
  • moveViewToX(float xValue):将当前视口的左侧(边)移动到指定的x值。
  • moveViewToY(float yValue, AxisDependency axis):将视口集中在提供的y轴上的指定y值(左侧或右侧)。
  • moveViewTo(float xValue, float yValue, AxisDependency axis):这将使当前视口的左侧移动到x轴上的指定x值,并将视口居中到所提供的y轴上的指定y值(setVisibleXRange(…)与此相关联setVisibleYRange(…)。
  • centerViewTo(float xValue, float yValue, AxisDependency axis):这将当前视口的中心移
    动到指定的x值和y值(使得组合意义与setVisibleXRange(…)和setVisibleYRange(…)。

用动画移动视图 ## (自版本v2.2.3起)

  • moveViewToAnimated(float xValue, float yValue, AxisDependency axis, long duration):这将将当前视口的左侧移动到x轴上的指定x值,并将视口以动画方式居中在提供的y轴上的指定y值。
  • centerViewToAnimated(float xValue, float yValue, AxisDependency axis, long duration):这将以动画的方式将当前视口的中心移动到指定的x值和y值(根据轴)。

注意:所有moveViewTo(…)方法将自动 invalidate()(刷新)图表。没有必要进一步呼叫invalidate()。

缩放(以编程方式)

  • zoomIn():放大1.4f,进入图表中心。
  • zoomOut():从图表中心缩小0.7f。
  • zoom(float scaleX, float scaleY, float x, float y):放大或缩小给定的比例因子。x和y是缩放中心的坐标(以像素为单位)。记住1f =无缩放比例。
  • zoom(float scaleX, float scaleY, float xValue, float yValue, AxisDependency axis):放大或缩小给定的比例因子。xValue和yValue是缩放中心的实际数据值(而不是像素)。记住1f =无缩放比例。

缩放动画 ## (自版本v2.2.3起)

  • zoomAndCenterAnimated(float scaleX, float scaleY, float xValue, float yValue, AxisDependency axis, long duration):以指定的比例因子缩放,并以动画方式将视口中心到指定轴上的指定值。

    完整的例子

    chart.setData(…); //首先设置数据

    //现在修改视口
    chart.setVisibleXRangeMaximum(20); //允许在x轴上同时显示20个值,而不是更多的
    chart.moveViewToX(10);//将图表的左边缘设为x-index 10
    // moveViewToX(…)也调用invalidate()

坚持原创技术分享,您的支持将鼓励我继续创作!
0%