0

我正在尝试制作一个带有右对齐标题和线性布局中心的图表的圆环图。

这是我的渲染代码:

    DefaultRenderer renderer = buildCategoryRenderer(colors);
    renderer.setShowLabels(true);
    renderer.setInScroll(true);
    renderer.setChartTitle("BEST TITLE IN THE WORLD");
    renderer.setZoomEnabled(false);
    renderer.setPanEnabled(false);// Disable User Interaction
    renderer.setScale((float) 1.3);
    renderer.setApplyBackgroundColor(true);
    renderer.setBackgroundColor(Color.WHITE);
    renderer.setStartAngle(0);
    //didn't work: margins - an array containing the margin size values,
    //in this order: top, left, bottom, right
    int[] margins = {150,0,0,0};
    renderer.setMargins(margins);
    //if I set to false, title disappear
    renderer.setShowLabels(true);
    renderer.setShowLegend(false);

    MultipleCategorySeries categorySeries = new MultipleCategorySeries(
            "CONTENUTI");
    categorySeries.add(labels, values);

    donutGraph = ChartFactory.getDoughnutChartView(this,
            categorySeries, renderer);
    donutGraph.setLeft(10);
    donutGraph.setOnClickListener(this);
    parent.addView(donutGraph);

    donutGraph.repaint();

这是我的 xml 代码(仅圆环图):

    <!-- layout donut -->
    <LinearLayout
             android:id="@+id/pie_chart"
             android:layout_width="fill_parent"
             android:layout_height="0dip"
             android:layout_weight="0.5"
             android:layout_margin="10dp"
             android:orientation="horizontal"
             android:background="#aadd66">
    </LinearLayout>

这是结果:

结果

我的问题:

  1. 如何更改甜甜圈的来源?我应该使用 DefaultRenderer 对象还是使用 GraphicalView?

  2. 我怎样才能右对齐标题?(如果可能的话)。

  3. 如何显示标题而不显示标签?

如果你有好的教程,请告诉我:我必须再做一个散点图。非常感谢!

4

1 回答 1

0

2.我怎样才能右对齐标题?(如果可能的话)。

3.如何显示标题而不显示标签?

drawTitle()在方法中进行这些更改RoundChart.java

 public void drawTitle(Canvas canvas, int x, int y, int width, Paint paint) {
//    if (mRenderer.isShowLabels()) {
      paint.setColor(mRenderer.getLabelsColor());
      paint.setTextAlign(Align.LEFT);
      paint.setTextSize(mRenderer.getChartTitleTextSize());
      drawString(canvas, mRenderer.getChartTitle(), x  ,
          y + mRenderer.getChartTitleTextSize(), paint);    //REMOVE "+ width / 2"
//    }
  }
于 2014-04-02T05:26:42.663 回答