Android利用AChartEngine作图时报索引越界

今天在利用AChartEngine开发图表过程中发现一个奇怪的问题,

在调用XYMultipleSeriesRenderer对象setDisplayChartValues(true)时,应用就会报数组越界错误。

12-20 07:15:27.331: E/AndroidRuntime(339): FATAL EXCEPTION: main
12-20 07:15:27.331: E/AndroidRuntime(339): java.lang.IndexOutOfBoundsException: Invalid index 12, size is 12
12-20 07:15:27.331: E/AndroidRuntime(339):  at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
12-20 07:15:27.331: E/AndroidRuntime(339):  at java.util.ArrayList.get(ArrayList.java:311)
12-20 07:15:27.331: E/AndroidRuntime(339):  at org.achartengine.util.IndexXYMap.getYByIndex(IndexXYMap.java:80)
12-20 07:15:27.331: E/AndroidRuntime(339):  at org.achartengine.model.XYSeries.getY(XYSeries.java:169)
12-20 07:15:27.331: E/AndroidRuntime(339):  at org.achartengine.chart.XYChart.drawChartValuesText(XYChart.java:551)
12-20 07:15:27.331: E/AndroidRuntime(339):  at org.achartengine.chart.XYChart.drawSeries(XYChart.java:502)
12-20 07:15:27.331: E/AndroidRuntime(339):  at org.achartengine.chart.XYChart.draw(XYChart.java:286)
12-20 07:15:27.331: E/AndroidRuntime(339):  at org.achartengine.GraphicalView.onDraw(GraphicalView.java:166)
12-20 07:15:27.331: E/AndroidRuntime(339):  at android.view.View.draw(View.java:6880)
12-20 07:15:27.331: E/AndroidRuntime(339):  at android.view.ViewGroup.drawChild(ViewGroup.java:1646)

经过分析发现存在以下规律:

当displayChartValues属性为true之后,在绘图时AChartEngine将会按照XYSeries对象的x轴的取值作为索引,

如果X轴的取值不是从1开始循环之后将会出现索引越界的错误。

此时在设置XYSeries的X轴的值的时候需要按照索引顺序指定,即1,2,3...

如果想要保存X轴的取值就不能设定setDisplayChartValues(true)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值