是否可以通过编程方式更改PieRenderer?

时间:2014-07-08 07:09:08

标签: java android androidplot

我想创建一个饼图,片段标签呈现在两行上。

为此,我必须覆盖PieRenderer.drawSegmentLabelsource on bitbucket),但我不知道如何将我的渲染器类设置为PieChart对象。

我找到了pie.getRenderer(PieRenderer.class)来获取渲染器,但我找不到任何方法设置它。有没有办法将我的渲染器设置为PieChart?我不想使用AndroidPlot的来源。

(Androidplot版本:0.6.1)

1 个答案:

答案 0 :(得分:1)

实际上是Formatter告诉Androidplot在绘图时使用哪个渲染器;添加片段/系列时,总是传入Formatter的实例。您需要像这样扩展SegmentFormatter:

/**
 * Formatter used by MyPieRenderer to draw a segment.
 */
class MySegmentFormatter extends SegmentFormatter {

    @Override
    public Class<? extends SeriesRenderer> getRendererClass() {
        return MyPieRenderer.class;
    } 

    @Override
    public SeriesRenderer getRendererInstance(final PieChart plot) {
        return new MyPieRenderer(plot);
    }       
}

您可以/还应该将任何其他格式化参数添加到此类中以供drawSegmentLabel实现使用。

最后,确保在添加MyPieRenderer要呈现的片段时使用MySegmentFormatter实例:

pie.addSeries(series, new MySegmentFormatter());