我正在使用AchartEngine绘制多行图(线图)。放大时,点之间的线条消失,只有点保持可见。有没有人有这样的问题?
代码并不特别。
XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset(); XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
XYSeries IVseries=new XYValueSeries("IV");
XYSeries IV_stc_series=new XYValueSeries("IVstc");
for(double i=0;i<6;i=i+0.1){
IVseries.add(sin(i),cos(i));
IV_stc_series.add(2*sin(i),cos(i));
}
mDataset.addSeries(IVseries);
mDataset.addSeries(IV_stc_series);
XYSeriesRenderer IVrenderer = new XYSeriesRenderer ();
IVrenderer.setFillPoints(true);
IVrenderer.setPointStyle(PointStyle.TRIANGLE);
IVrenderer.setLineWidth(5);
IVrenderer.setColor(Color.GREEN);
mRenderer.addSeriesRenderer(IVrenderer);
XYSeriesRenderer IV_stc_renderer = new XYSeriesRenderer ();
IV_stc_renderer.setFillPoints(true);
IV_stc_renderer.setPointStyle(PointStyle.X);
IV_stc_renderer.setLineWidth(5);
IV_stc_renderer.setColor(Color.RED);
mRenderer.addSeriesRenderer(IV_stc_renderer);
mRenderer.setPanEnabled(true,true);
mRenderer.setZoomEnabled(true, true);
mRenderer.setZoomButtonsVisible(true);
mRenderer.setXLabels(20);
mRenderer.setYLabels(20);
mRenderer.setShowGrid(true);
mRenderer.setGridColor(Color.BLACK);
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.WHITE);
mChartView = ChartFactory.getLineChartView(context, mDataset, mRenderer);
layout.addView(mChartView, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));
答案 0 :(得分:2)
您还可以通过以下方式禁用特定视图的硬件加速:
View.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
这解决了我用achartengine的问题。是的,在较旧的手机中,渲染显然不那么顺畅......
答案 1 :(得分:0)
最终我通过在AndroidManifest.xml中禁用硬件加速来解决这个问题
机器人:硬件加速= “假”
这样,线条总是呈现无关放大的程度。
答案 2 :(得分:0)
可能是因为AbstarctChart ==&gt; calculateDrawPoint返回float数组,有时包含Float.NaN。 请查看帖子