2016-03-26 4 views
3

При попытке создать линейный граф с библиотекой графического представления в андроид-студии часть номеров на вертикальной линии вырезана. Кто-нибудь знает, как это исправить?Вычеркнутые номера оси андроида и оси y

<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` 

ответ

1

может быть, она должна быть

android:layout_height="200dp" 

вместо этого. Лучше всего все же, вы можете указать

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

Просто мои 2 цента :)

2

Я была такая же проблема. Исправление я в настоящее время нашел, чтобы установить отступы в GridLabelRenderer, связанной с графом с:

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

Как я понимаю, graphview график рассчитывает иметь полную ширину экрана по умолчанию, поэтому он обрезается по умолчанию для приложения для Android (16dp). Установка этого значения заполнения в GridLabelRenderer добавляет больше отступов к краям графика, уменьшая фактическую область графического отображения графика, но позволяя больше места для чисел.

Для сравнения, значение по умолчанию отступов, связанное с GridLabelRenderer 20.

Я полагаю, есть более элегантное решение, но это все, что я смог придумать. Надеюсь, это поможет любому, кто придумает ту же проблему.

0

Спасибо, я также закончил настройку прокладки больше. Это сработало для меня, но, должно быть, нужно, чтобы он отрегулировал по отношению к ярлыкам.

0

Это старый вопрос, но для разработчиков с той же проблемой, вы можете использовать:

graph.getGridLabelRenderer().setHumanRounding(true);

ПРИМЕЧАНИЕ: Если вы используете даты в качестве оси х вы хотите установить эту ложь так что форматирование выглядит неплохо. Однако, если ваша ось x не является датой, и вы хотите округлить все значения осей, это будет работать.

1

вы можете установить ширину этикетки со следующим методом

mGraph.getGridLabelRenderer().setLabelVerticalWidth(int width) 

Может быть, вы хотите установить значение в зависимости от количества цифр

С наилучшими пожеланиями

Смежные вопросы