2 Stimmen

ACE wie man das Verhalten der Zoom-Schaltfläche auf der X-Achse für TimeChart ändert

Ich verwende die Methode ChartFactory.getTimeChartView aus der ausgezeichneten Bibliothek achartengine. Ich zeige nur die letzte Woche der Datensätze, so dass der Benutzer nach links schwenken, um frühere Datensätze zu sehen, mit renderer.setXAxisMin(OneWeekBefore); Eigentum.

Ich habe 2 Fragen:

a) Wie kann man den Zoom der X-Achse in TimeChart ermöglichen?
Ich kann auf der X-Achse nicht zoomen, obwohl der Zoom sowohl auf der X- als auch auf der Y-Achse aktiviert ist. Möglicherweise verwende ich die Zoom- und Schwenkbegrenzungen auf unangemessene Weise, kann aber nicht herausfinden, was/warum.

b) Wie kann man das Verhalten der Zoomtaste ändern?
Ich würde gerne das Verhalten der Zoomtaste 1:1 ändern. Wenn ich diese Taste drücke, wird das gesamte Diagramm angezeigt und nicht nur die letzte Woche.

Hier ist der Code für die Einstellung der Zoom-Eigenschaften:

    // ZOOM
    double[] panlimits = new double[] { XfirstRecord , maxdate, 0.0, Ymax * 1.2 };
    renderer.setZoomEnabled(enabledXzoom, YenabledYzoom);
    renderer.setZoomButtonsVisible(showZoomButtons);
    renderer.setZoomRate(ZoomRate);
    renderer.setPanLimits(panlimits);
    renderer.setZoomLimits(panlimits);

    renderer.setXAxisMin(OneWeekBefore);

Arbeits-Update nach der Überprüfung Dan's Antwort ist wie unten, es funktioniert für mich:

        // ZOOM
        double[] panlimits = new double[] { XfirstRecord, now, 0.0, Ymax * 1.2 };
        renderer.setZoomEnabled(XenabledZoom, YenabledZoom);
        renderer.setZoomButtonsVisible(showZoomButtons);
        renderer.setZoomRate(ZoomRate);
        renderer.setPanLimits(panlimits);
        renderer.setZoomLimits(panlimits);

        // SHOW ONLY last WEEK even after Zoom reset
        renderer.setXAxisMin(OneWeekBefore);
        renderer.setInitialRange(new double[] {OneWeekBefore, now, 0.0, Ymax * 1.2});

1voto

Dan D. Punkte 32096

Für die erste Frage sollten die Grenzen für Schwenken und Zoomen in etwa so aussehen:

// please note that I am using the Java naming of variables
new double[] { oneWeekBefore, today, 0, yMax * 1.2 };

Funktioniert der Pinch-Zoom?

Für die zweite Frage verwenden Sie:

renderer.setInitialRange(new double[] {oneWeekBefore, today, 0, yMax * 1.2});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X