2013-09-04 13 views
5

Ich benutze eine Achtengine für Daten, die meine Anwendung kontinuierlich über eine Socket-Verbindung empfängt. Der Punkt wird gegen die Zeit aufgetragen, die meine x-Achse ist. Sobald das Diagramm erstellt wurde, kann der Benutzer das Diagramm verschieben und vergrößern. Alles ist butterweich. Das einzige Problem ist, dass, wenn der Benutzer den Graphen vergrößert, Teile des Graphen auch auf der anderen Seite der x- und y-Achse sichtbar sind.Graph sichtbar außerhalb der X- und Y-Achse

Wie kann ich verhindern, dass der Graph außerhalb der X- und Y-Achse sichtbar ist?

Hier ist ein Teil meines Codes.

XYMultipleSeriesRenderer 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(true, true); 
    renderer.setPointSize(5f); 
renderer.setShowGrid(true); 
renderer.setXTitle(xTitle); 
renderer.setYTitle(yTitle); 
renderer.setLabelsColor(getResources().getColor(R.color.black)); 
renderer.setXLabelsColor(getResources().getColor(R.color.black)); 
renderer.setYLabelsColor(0, getResources().getColor(R.color.black)); 
renderer.setDisplayValues(true); 
renderer.setSelectableBuffer(20); 
renderer.setShowLegend(false); 

    renderer.setRange(new double[] { timeSeriesChart.getMinX(), 
      timeSeriesChart.getMaxX(), 0/* minY */, maxY }); 

    renderer.setPanLimits(getChartLimit(
    isTimeChart, timeSeriesChart.getMinX(), timeSeriesChart.getMaxX(), 
    (maxY*-1)+timeSeriesChart.getMinY(), 
    maxY)); 

enter image description here

+0

Welche Version von AChartEngine verwenden Sie? –

+0

Ich verwende Version 1.1.0 – Umesh

+0

Sie haben es von hier heruntergeladen: http://code.google.com/p/achartengine/downloads/list? –

Antwort

0

hatte ich eine ähnliche Anforderung. Ich löste es, indem ich meinen Datensatz auf einen maximalen und minimalen Wert festlegte. In meinem Fall funktionierte es natürlich, weil ich die Daten, die ich von einem Server erhalten hatte, transformierte, bevor ich sie in meinen Datensatz legte.

TimeSeries mTimeSeries; 

... 
... 

private void addValue(Date time, double val){ 
    if(val >= MAX_VALUE){ 
     val = MAX_VALUE; 
    } 
    if(val <= MIN_VALUE){ 
     val = MIN_VALUE; 
    } 

    mTimeSeries.add(time, val); 
} 
+0

Haben Sie das Zoomen in Ihrer Anwendung zugelassen? Wenn ja, wie haben Sie das gehandhabt? –

+0

Nein. Ich habe das Zoomen deaktiviert – curioustechizen

+0

Danke für die Antwort, aber die Frage bezieht sich speziell auf Schwenken/Zoomen –