15. Modifying the Viewport(MPAndroidChart中文翻译)

目录

第8节.Setting Colors(MPAndroidChart中文翻译)
第9节.Formatting Data Values (ValueFormatter)(MPAndroidChart中文翻译)
第10节-Formatting Axis Values (AxisValueFormatter)(MPAndroidChart中文翻译)
第11节.General Settings & Styling(MPAndroidChart中文翻译)
第12节.Specific Settings & Styling(MPAndroidChart中文翻译)
第13节.Legend(MPAndroidChart中文翻译)
第14节.Dynamic & Realtime Data(MPAndroidChart中文翻译)
第15节. Modifying the Viewport(MPAndroidChart中文翻译)
第16节.Animations(MPAndroidChart中文翻译)
第17节. MarkerView (Popup View)(MPAndroidChart中文翻译)
第18节. The ChartData class(MPAndroidChart中文翻译)
第19节. ChartData subclasses(MPAndroidChart中文翻译)
第20节. The DataSet class (general DataSet styling)(MPAndroidChart中文翻译)
第21节. DataSet subclasses (specific DataSet styling)(MPAndroidChart中文翻译)
第22节. The ViewPortHandler(MPAndroidChart中文翻译)
第23节. Customizing the Fill-Line-Position (FillFormatter)(MPAndroidChart中文翻译)
第24节. Proguard(MPAndroidChart中文翻译)
第25节. Realm.io mobile database(MPAndroidChart中文翻译)
第26节. Creating your own (custom) DataSets(MPAndroidChart中文翻译)
第27节. Miscellaneous (more useful stuff)(MPAndroidChart中文翻译)

本依赖库提供了很多修改视图的方法(图表的可见性,图表的动画).注意这些方法只对LInChart,BarChart,ScatterChart和CandleStickChart起作用.

下面提到这些方法都是有Chart类提供.其他修改视图的方法是直接通过ViewPortHandler类(没有图表提供中间安全性).这只适用于熟悉API的高级用户.

注意:在设置数据之后,需要调用图表上所有修改视图的方法.

Restraining what’s visible(设置可见内容)

  • setVisibleXRangeMaximum(float maxXRange): 设置首次可见区域(x轴)的最大值.举个栗子:如果设置值为10,在首次展示时,除非滚动,否则x轴上超过10个将不会显示.
  • setVisibleXRangeMinimum(float minXRange): 设置首次可见区域(x轴)的最小值.举个栗子:如果设置值为10,在首次展示时,当x轴上有10个值时想继续放大是不可能的.
  • setVisibleYRangeMaximum(float maxYRange, AxisDependency axis): 设置首次可见区域(y轴)的最大值.同时你需要设置你想应用的是左,右哪个y轴.
  • setViewPortOffsets(float left, float top, float right, float bottom): 为当前视图设置自定义偏移量(与实际图表窗口的偏移量).设置这将组织图表自动计算偏移量.调用 resetViewPortOffsets() 方法取消其设置. 只有在你知道你在做什么的时候才使用它.
  • resetViewPortOffsets(): 重置通过setViewPortOffsets(…)方法设置的所有自定义偏移量.允许图表再次自动计算所有偏移量.
  • setExtraOffsets(float left, float top, float right, float bottom): 为自动计算完毕后的偏移量增加额外的偏移量(图表视图周围).这个不会改变自动计算的偏移量,只会在原有基础上增加空间.

Moving the view(where it is amied) (在有动画的地方移动视图)

  • fitScreen(): 重置所有缩放和拖拽,使图表完全合适边框(完全缩小).
  • moveViewToX(float xValue): 将当前窗口的左侧移动到指定的x轴位置
  • moveViewToY(float yValue, AxisDependency axis): 将窗口居中所提供的y轴(左侧还是右侧)上的指定y轴值.
  • moveViewTo(float xValue, float yValue, AxisDependency axis):该方法将会将窗口的左侧移动到指定x轴位置,居中于指定y轴的指定y轴值.(结合setVisibleXRange(…)和setVisibleYRange(…)方法才有意义)
  • centerViewTo(float xValue, float yValue, AxisDependency axis): 该方法将会将窗口居中在x轴和y轴的指定坐标位置.(结合 setVisibleXRange(…) 和setVisibleYRange(…)方法才有意义)

Moving the view with animations(用动画移动视图)

(v2.2.3正式版开始出现)

  • moveViewToAnimated(float xValue, float yValue, AxisDependency axis, long duration): 该方法将窗口左侧移动到x轴指定位置,居中于指定y轴的指定y轴值位置,并且伴随着动画形式.
  • centerViewToAnimated(float xValue, float yValue, AxisDependency axis, long duration): 该方法将窗口居中于x轴和y轴的指定位置,并伴随动画.
提醒: 所有的moveViewTo(...)方法都是自动调用刷新图表的方法,无需额外调用invalidate()方法.

Zooming(programmatically) 缩放

  • zoomIn(): 以图表中心为缩放中心,放大1.4倍.
  • zoomOut(): 以图表中心为缩放中心,缩小0.7倍.
  • zoom(float scaleX, float scaleY, float x, float y): 以x,y表示的坐标点(单位px)为缩放中心,以scaleX和xcaleY为缩放因子进行缩放.记住缩放值为1时表示不缩放.
  • zoom(float scaleX, float scaleY, float xValue, float yValue, AxisDependency axis):以x,y表示的实际数据点(非坐标轴)为缩放中心,以scaleX和xcaleY为缩放因子进行缩放.记住缩放值为1时表示不缩放.

Zooming with animations 动画缩放

(v2.2.3正式版本开始可用)

  • zoomAndCenterAnimated(float scaleX, float scaleY, float xValue, float yValue, AxisDependency axis, long duration): 以指定的缩放因子进行缩放,并以动画的方式将窗口居中于指定轴上的指定位置.

For example 举个栗子

chart.setData(...); // first set data

// now modify viewport
chart.setVisibleXRangeMaximum(20); // allow 20 values to be displayed at once on the x-axis, not more
chart.moveViewToX(10); // set the left edge of the chart to x-index 10
// moveViewToX(...) also calls invalidate()
    原文作者:xiaobug
    原文地址: https://www.jianshu.com/p/bc57cbd01b5a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞