2016-03-26 5 views
3

Beim Versuch, ein Liniendiagramm mit der Graph-View-Bibliothek im Android Studio zu erstellen, wird ein Teil der Zahlen auf der vertikalen Linie ausgeschnitten. Weiß jemand, wie man das repariert?android graph-view y-achsen-nummern werden ausgeschnitten

<com.jjoe64.graphview.GraphView 
      android:layout_width="300dp" 
      android:layout_height="200dip" 
      android:id="@+id/graph" 
      android:layout_centerVertical="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_gravity="center_horizontal" 
      android:nestedScrollingEnabled="false" /> 

final GraphView graph = (GraphView)findViewById(R.id.graph); 
final LineGraphSeries<DataPoint> graphSeries = new LineGraphSeries<DataPoint>(new DataPoint[] { 
    }); // the points are added progressively` 

Antwort

1

vielleicht sollte es

android:layout_height="200dp" 

statt sein. Das Beste ist, können Sie angeben,

graph.getViewport().setMinY(0.0); 
graph.getViewport().setMaxY(100.0); 

Just my 2 cents :)

2

Ich hatte das gleiche Problem. Die Update ich zur Zeit gefunden ist, die Polsterung im GridLabelRenderer mit dem Graphen zugeordnet Set mit:

GraphView gv = (GraphView) findViewById(R.id.graph); 
GridLabelRenderer glr = gv.getGridLabelRenderer(); 
glr.setPadding(32); // should allow for 3 digits to fit on screen 

Wie ich es verstehe, die graphview Graph erwartet standardmäßig die volle Bildschirmbreite haben, so wird es abgeschnitten von das Standard-Padding für die Android-App (16dp). Wenn Sie diesen Auffüllwert im GridLabelRenderer festlegen, wird den Kanten des Diagramms mehr Auffüllung hinzugefügt, wodurch der tatsächliche Diagrammbereich des Diagramms verkleinert wird, jedoch mehr Platz für die Zahlen bleibt.

Als Referenz der Standard Füllwerts mit dem GridLabelRenderer zugeordnet ist 20.

ich vorstellen, dass es eine elegantere Lösung ist, aber das ist alles, was ich konnte, mit kommen. Hoffe das hilft jedem, der das gleiche Problem hat.

0

Dank Ich habe auch die Polsterung größer eingestellt. Es hat für mich funktioniert, aber es muss weg sein, damit es sich relativ zu den Labels anpasst.

0

Dies ist eine alte Frage, aber für Entwickler mit dem gleichen Problem können Sie:

graph.getGridLabelRenderer().setHumanRounding(true);

HINWEIS: Wenn Sie Daten als x-Achse verwenden Sie so diese auf false gesetzt werden soll dass die Formatierung gut aussieht. Wenn Ihre X-Achse jedoch keine Daten ist und Sie alle Achsenwerte runden möchten, funktioniert dies.

1

können Sie Breite der Etikettensatz mit Verfahren folgende

mGraph.getGridLabelRenderer().setLabelVerticalWidth(int width) 

Vielleicht möchten Sie Sollwert entsprechend der Anzahl der Ziffern

Mit freundlichen Grüßen

Verwandte Themen