Android AcharEngine:在TimeSeries中访问scaleNumber
我正在使用AchartEngine,试图创建一个组合图表,包含一个散点图和一个折线图,都基于时间序列,有两个Y轴,每个序列一个。该项目将生成一个风向图,有点像这样: (参见“前24小时”或“前7天”示例) 我遇到了一个问题,TimeSeries的构造函数(与父类XYSeries不同)不包含scaleNumber,我需要它来正确配置两个Y轴。我看过这个问题: CraigB编辑的第二个答案似乎是一个很好的方法,但我无法编译它-编译器标记“VectorChart.MyTimeSeries类型的方法getPadding(double)必须重写或实现超类型方法”。发生什么事了 我是一个android/java新手,请给我解释一下 我的代码:Android AcharEngine:在TimeSeries中访问scaleNumber,android,achartengine,Android,Achartengine,我正在使用AchartEngine,试图创建一个组合图表,包含一个散点图和一个折线图,都基于时间序列,有两个Y轴,每个序列一个。该项目将生成一个风向图,有点像这样: (参见“前24小时”或“前7天”示例) 我遇到了一个问题,TimeSeries的构造函数(与父类XYSeries不同)不包含scaleNumber,我需要它来正确配置两个Y轴。我看过这个问题: CraigB编辑的第二个答案似乎是一个很好的方法,但我无法编译它-编译器标记“VectorChart.MyTimeSeries类型的方法ge
package au.com.merenito.seatalkcharter;
import java.util.Date;
import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.ScatterChart;
import org.achartengine.chart.TimeChart;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.content.Context;
public class VectorChart {
private GraphicalView mChartView;
private MyTimeSeries mag_dataset;
private MyTimeSeries dir_dataset;
private XYMultipleSeriesDataset mDataset;
private XYSeriesRenderer mag_renderer;
private XYSeriesRenderer dir_renderer;
private XYMultipleSeriesRenderer mRenderer;
int maxPoints;
private class MyTimeSeries extends XYSeries {
public MyTimeSeries(String title, int scaleNumber) {
super(title, scaleNumber);
}
public synchronized void add(Date x, double y) {
super.add(x.getTime(), y);
}
@Override
protected double getPadding(double x) { //********* Compiler error here!!
return 1;
}
}
public VectorChart(String title, int mP)
{
maxPoints = mP;
mag_dataset = new MyTimeSeries(title,0);
dir_dataset = new MyTimeSeries("Dir",1);
mDataset = new XYMultipleSeriesDataset();
mDataset.addSeries(mag_dataset);
mDataset.addSeries(dir_dataset);
mag_renderer = new XYSeriesRenderer();
dir_renderer = new XYSeriesRenderer();
//put any line customisation here, eg renderer.setColor
mRenderer = new XYMultipleSeriesRenderer();
mRenderer.addSeriesRenderer(mag_renderer);
mRenderer.addSeriesRenderer(dir_renderer);
mRenderer.setZoomEnabled(false, false);
mRenderer.setPanEnabled(false,false);
mRenderer.setChartTitle(title);
}
public GraphicalView getView(Context context)
{
String[] types = new String[] {TimeChart.TYPE, ScatterChart.TYPE };
mChartView = ChartFactory.getCombinedXYChartView(context, mDataset, mRenderer, types );
return mChartView;
}
public void addNewPoint(Date x, float mag, float dir, boolean reFresh)
{
mag_dataset.add(x, mag);
dir_dataset.add(x, dir);
while (mag_dataset.getItemCount()>maxPoints) mag_dataset.remove(0);
while (dir_dataset.getItemCount()>maxPoints) dir_dataset.remove(0);
if(reFresh) mChartView.repaint();
}
}
试着
private class MyTimeSeries extends XYSeries
{
public MyTimeSeries(String title, int scaleNumber)
{
super(title, scaleNumber);
}
public synchronized void add(Date x, double y)
{
super.add(x.getTime(), y);
}
@Override
protected double getPadding()
{
return super.getPadding();
}
}