2016-05-24 16 views
1

Ich benutze MpAndroidChart Bibliothek. Ich muss ein Design implementieren, bei dem ich den Bereich zwischen zwei Grenzlinien einfärben muss. Ich habe ein Bild als Referenz beigefügt. Ich habe mehrere Wege ausprobiert, aber ich habe es nicht geschafft. Ich benutze diese Bibliothek zum ersten Mal. Kann mir jemand helfen, wie das erreicht werden könnte? As you can see the green shade behind the line graph. Which is the limit. I need to get that green shadeMpAndroidChart Hintergrund zwischen Grenzwertlinien setzen

Wie Sie den grünen Schatten hinter dem Liniendiagramm sehen können. Was ist das Limit? Ich brauche diesen Grünton

Vielen Dank im Voraus zu bekommen,

Anudeep Reddy.

+0

Ich bin nicht sicher, aber dies kann Ihnen helfen. http://stackoverflow.com/questions/37268519/how-to-change-dot-colors-if-value-is-higher-than-constant-in-mpandroidchart/37389595#37389595 – Dhruv

Antwort

0

Ich glaube nicht, dass es eine direkte Möglichkeit, dies zu erreichen, aber diese Abhilfe sollen Ihnen helfen:

LimitLine ll = new LimitLine(lowerLimit, "Systolic range"); 
ll.setLineColor(Color.GREEN); 
ll.setLineWidth(upperLimit - lowerLimit); 

ll.setTextColor(Color.WHITE); 
ll.setTextSize(12f); 

chart.getAxisLeft().setDrawLimitLinesBehindData(true); 

Das Wichtigste hier ist die Methode setDrawLimitLinesBehindData(true).

Wie immer sind alle Informationen im documentation verfügbar.

1

Dies kann durch Unterklassierung der Diagrammklasse (z. B. LineChart) und anschließende Überschreibung der onDraw() -Methode erfolgen. Im überschriebenen onDraw() können Sie die benötigten Rechtecke direkt auf die Zeichenfläche zeichnen und dann super.onDraw() aufrufen, um das Rendern des Diagramms abzuschließen.

Es gibt ein Beispiel dafür, wie Sie dies auf dem MP Android Github tun (siehe unten). Ich habe den Code im Beispiel verfolgt und es hat gut für mich funktioniert.

https://github.com/PhilJay/MPAndroidChart/issues/485

0

hatte ich das gleiche Problem, aber eine andere Abhilfe erreicht, ohne dass die Linechart Unterklasse zu haben. Die Verwendung von Canvas zum Zeichnen des Rechtecks ​​funktioniert, aber Sie müssen Ihre Diagrammkoordinaten in die Canvas-Koordinaten übersetzen. Sie können keine einzelne Grenzwertlinie verwenden, da die Breite der Linie begrenzt ist. Die Problemumgehung, die ich verwendet habe, bestand darin, die Begrenzungslinien einfach zu durchlaufen, um ein Rechteck innerhalb meines Bereichs zu erstellen.

float increment = (rangeHigh - rangeLow)/20; 
    float metricLine = rangeLow; 

    for(int i = 0; i < 20; i++) { 
     LimitLine llRange = new LimitLine(metricLine, ""); 
     llRange.setLineColor(Color.parseColor("#b5eb45")); 
     llRange.setLineWidth(10f); 
     leftAxis.addLimitLine(llRange); 
     metricLine = metricLine + increment; 
    } 

graph

Verwandte Themen