Android aChartEngine 可移动折线图

标签 android achartengine linechart

我正在使用 aChartEngine 的 Android 0.7.0 图表库。任何人都可以帮助我如何从左到右到右绘制折线图并最终移出 View 以及如何将图 TableView 向左滚动吗?

我的代码是......

public class MainActivity extends Activity {

    private GraphicalView view;
    private static Thread thread;
    private TimeSeries dataSet = new TimeSeries("Heart Beat Rate");
    private XYSeriesRenderer renderer = new XYSeriesRenderer();
    private XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset();
    private XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
      @Override
      public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.main);       
              LinearLayout layout_eeg1 = (LinearLayout) findViewById(R.id.chart1);
                view = getView(this);
                layout_eeg1.addView(view,new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
                thread = new Thread() {
                public void run() {
                    for (int i = 0; i < 200; i++) {
                        try {
                            Thread.sleep(500);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        } 
                        Point p = getDataFromReciver(i);
                        addNewPoint(p);
                        view.repaint();
                    }
                }
            };
            thread.start(); 

      }      
      private static Point getDataFromReciver(int x) {
        return new Point(x, randomData());
    }

    private static int randomData() {
        Random random = new Random();
        return random.nextInt(180);
    }

    private int x;
    private int y;

    public void Point( int x, int y) {
        this.x = x;
        this.y = y;
    }
    private int getX() {
        return x;
    }   
     private int getY() {
        return y;
    }
      public MainActivity() {
        mDataset.removeSeries(dataSet);
        mDataset.addSeries(dataSet);


        renderer.setColor(Color.GREEN);
        renderer.setLineWidth(2);
        double xmax = mRenderer.getXAxisMax();
        mRenderer.setXAxisMin(xmax - 5);
        //renderer.setPointStyle(PointStyle.SQUARE);
        //renderer.setFillPoints(true);
         mRenderer.setShowAxes(false);
        mRenderer.setShowGridX(false); // X grid helps identify values
        mRenderer.setShowLabels(false); // See the values
        mRenderer.setXTitle("Milisecond #");
        mRenderer.setYTitle("HeartBeat");
        mRenderer.removeSeriesRenderer(renderer);
        mRenderer.addSeriesRenderer(renderer);
        }
      private GraphicalView getView(Context context) {
        view = ChartFactory.getLineChartView(context, mDataset, mRenderer);
        return view;

    }
    private void addNewPoint(Point p) {
        dataSet.add(p.x, p.y);      
    }
}

最佳答案

如果您的图表不使用时间值,那么它应该是简单的。如您所知,achartengine 会自动尝试将所有点放入一张图表中,以便始终显示右侧。因为您想要控制左侧显示的内容,所以您可以获得最大 x 值,无论它是什么,然后将最小值设置为小于您想要显示的间隔。这里mrenderer是XYMultipleSeriesRenderer

顺便说一句,achartengine 已经将其库升级到 1.0.0

改用这个线程:

    thread = new Thread() {
        public void run() {
            for (int i = 0; i < 200; i++) {
                try {
                    Thread.sleep(500);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                Point p = getDataFromReciver(i);
                addNewPoint(p);

                if (i > 5) {
                    mRenderer.setXAxisMin(i - 5);
                }

                view.repaint();
            }
        }
    };
    thread.start();

关于Android aChartEngine 可移动折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13678071/

相关文章:

android - 带有单选按钮和验证按钮的对话框

安卓 AChartEngine : Hide tick marks in axes

android - 检测条形图中条形上的触摸事件

javascript - Google Charts - 曲线图错误地低于 0

java - getExternalStorageDirectory() 和 getDataDirectory() 之间的区别

android - Gradle项目同步失败(相关性错误)

android ANR( Activity 无响应)trace.txt

Android转换月份数组

javascript - 重叠数据标签折线图高位图

javascript - Highchart 组具有相同日期的图表点