android - 使用 achartEngine 卡在移动图中

标签 android graph achartengine

嗨, friend 们,我在我的 Android 应用程序中使用了图表。因为我每秒更新一次图表。现在我想在更新值时将此图表从右移动到左。任何人都知道如何这样做?任何帮助表示赞赏。

 dataset = new XYMultipleSeriesDataset();

         renderer = new XYMultipleSeriesRenderer();

         renderer.setChartTitleTextSize(12);
         renderer.setLabelsTextSize(15);
         renderer.setMarginsColor(Color.argb(0x00, 0x01, 0x01, 0x01));
         renderer.setApplyBackgroundColor(true);
         renderer.setBackgroundColor(Color.TRANSPARENT);
         renderer.setZoomEnabled(false, false);
         renderer.setPointSize(5f);
         renderer.setShowGrid(true);
         renderer.setXTitle("Time");
         renderer.setYTitle("Number");

         rendererSeries = new XYSeriesRenderer();

         rendererSeries.setColor(Color.BLUE);
         rendererSeries.setFillBelowLine(false);
         rendererSeries.setFillPoints(true);
         rendererSeries.setPointStyle(PointStyle.CIRCLE);
         renderer.addSeriesRenderer(rendererSeries);

         timeSeries = new TimeSeries("Random");
         mThread = new Thread(){
             public void run(){
                 while(true){
                     try {
                         Thread.sleep(2000L);
                     } 
                     catch (InterruptedException e) {
                         e.printStackTrace();
                     }

                     timeSeries.add(new Date(), random.nextInt(10));
                     mchartView.repaint();
                 }
             }
         };
         mThread.start();

         dataset.addSeries(timeSeries);
         mchartView = ChartFactory.getLineChartView(Pedometer.this, dataset, renderer);
         mchartView.refreshDrawableState();
         mchartView.repaint();

         llChart.addView(mchartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

最佳答案

您可以使用 setRange 设置每次添加新点时所需的范围。例如:

double maxX = timeSeries.getMaxX();
double minX = maxX - deltaX; // deltaX is your required x-range
double maxY = timeSeries.getMinY();
double minY = timeSeries.getMaxY();

renderer.setRange(new double[] { minX, maxX, minY, maxY });

这样,您的右边缘始终显示最长时间,而图表的其余部分将从右向左移动。

希望对您有所帮助。

关于android - 使用 achartEngine 卡在移动图中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10796888/

相关文章:

android - GcmListenerService.onMessageReceived() 仅在应用程序运行时调用

android - 如何释放唤醒锁?

android - cocos2d-android(github版) 如何在移动背景层的同时让一个 'player'的 Sprite 居中?

java - JFreechart,带填充区域的折线图

algorithm - 图的 k-顶点连通性

android - 禁用触摸 Achartengine

android - 如何在AChartEngine中为CombinedXYChart设置X轴的日期格式

android - 某些设备不支持 SipApi

安卓 : Bar chart changing y axis scale with achartengine

c++ - 使用迭代器访问数据。 boost 图