2015-06-24 6 views
0

Я попытался изменить расстояние между осью и осью в Android TeeChart. Я играл немного вокруг сИзменить расстояние между Axis Title и Axis в Android TeeChart

tChart.getAxes().getLeft().getTitle().setCustomSize(); 
tChart.getAxes().getBottom().getTitle().setCustomSize(); 
tChart.getAxes().getLeft().getLabels().setCustomSize(); 
tChart.getAxes().getBottom().getLabels().setCustomSize(); 

На левой оси, он прекрасно работает, но днище Заголовок оси остается в том же положении. Кто-нибудь знает решение?

Спасибо.

ответ

2

Боюсь, что нет единственного свойства, которое вы можете установить, чтобы добавить дополнительное пространство между названием оси и осью.
Более простой способ, я могу думать, чтобы достичь этого, добавив некоторое поле к диаграмме и нарисуя заголовки осей вручную на холсте. То есть:

Bar bar1 = new Bar(tChart1.getChart()); 
    bar1.fillSampleValues(); 

    tChart1.addChartPaintListener(new ChartPaintAdapter() { 

     @Override 
     public void chartPainted(ChartDrawEvent e) { 

      String leftText = "Left Axis Title"; 
      String bottomText = "Bottom Axis Title"; 

      int YMid = tChart1.getChart().getChartRect().y + (tChart1.getChart().getChartRect().height/2); 
      int XMid = tChart1.getChart().getChartRect().x + (tChart1.getChart().getChartRect().width/2); 

      tChart1.getGraphics3D().setFont(tChart1.getAxes().getLeft().getTitle().getFont()); 
      int leftHeight = tChart1.getGraphics3D().textWidth(leftText); 
      tChart1.getGraphics3D().rotateLabel(10, YMid + (leftHeight/2), leftText, 90); 

      tChart1.getGraphics3D().setFont(tChart1.getAxes().getBottom().getTitle().getFont()); 
      int bottomWidth = tChart1.getGraphics3D().textWidth(bottomText); 
      tChart1.getGraphics3D().textOut(XMid - (bottomWidth/2), tChart1.getHeight() - 20, bottomText); 
     } 
    }); 

    tChart1.getPanel().setMarginLeft(10); 
    tChart1.getPanel().setMarginBottom(10); 

Затем вы можете легко добавить дополнительный запас или переместить заголовки.

+0

Большое вам спасибо Yeray. Извините, что я не могу ответить на ваш ответ, мне нужна больше репутации. Я думал, что есть более простой способ, потому что заголовок оси всегда перекрывается с метками оси. – user3381066