Как правильно установитьStartAngle() в DefultRenderer в AChartEngine?

Я создал в своем приложении круговую диаграмму с помощью AChartEngine. Я написал это так:

private GraphicalView graphicalView;    
private CategorySeries categorySeries = new CategorySeries("");
private DefaultRenderer defaultRenderer = new DefaultRenderer();

private void setUpPieCharts() {
    defaultRenderer.setApplyBackgroundColor(true);
    defaultRenderer.setBackgroundColor(Color.TRANSPARENT);
    defaultRenderer.setZoomButtonsVisible(false);
    defaultRenderer.setZoomEnabled(false);
    defaultRenderer.setPanEnabled(false);
    defaultRenderer.setStartAngle(130);
    defaultRenderer.setShowLabels(false);
    defaultRenderer.setShowLegend(false);

     categorySeries.add("Series " + (categorySeries.getItemCount() + 1), 150);
     SimpleSeriesRenderer renderer = new SimpleSeriesRenderer();
     renderer.setColor(COLORS[(categorySeries.getItemCount() - 1) % COLORS.length]);
     defaultRenderer.addSeriesRenderer(renderer);

     categorySeries.add("Series " + (categorySeries.getItemCount() + 1), 50);
     renderer = new SimpleSeriesRenderer();
     renderer.setColor(COLORS[(categorySeries.getItemCount() - 1) % COLORS.length]);
     defaultRenderer.addSeriesRenderer(renderer);

     LinearLayout layout = (LinearLayout) findViewById(R.id.chart_1);
     graphicalView = ChartFactory.getPieChartView(this, categorySeries, defaultRenderer);
     //defaultRenderer.setStartAngle(90);           
     layout.addView(graphicalView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
}

Это работает очень хорошо. Но метод setStartAngle(), похоже, не работает. Я пробовал с несколькими значениями, но моя круговая диаграмма по-прежнему выглядит одинаково. Что я делаю неправильно?

ИЗМЕНИТЬ

Скриншот с вызовом этого метода.

Снимок экрана без вызова метода

Я загрузил два скриншота с вызовом и без вызова этого метода. Для удобства я добавил также эту строку для своей деятельности:

Toast.makeText(getApplicationContext(), String.valueOf(defaultRenderer.getStartAngle()), Toast.LENGTH_LONG).show();

Круговая диаграмма выглядит так же.


person woyaru    schedule 08.08.2012    source источник


Ответы (1)


Похоже, ваш код вызывает setStartAngle дважды, один раз со значением 130, а другой раз с 90. Я думаю, что он всегда будет отображаться с начальным углом = 90.

Я только что попробовал это в демонстрационном приложении ACE, и оно работает.

ОК, наконец-то мне удалось увидеть, в чем проблема. Вы используете AChartEngine 1.0.0, выпущенную в марте. Был API начального угла, но он не работал для PieChart, и это было исправлено в мае: http://code.google.com/p/achartengine/source/detail?r=386

Чтобы это заработало, вам нужно будет проверить код AChartEngine и выполнить сборку самостоятельно, запустив ant dist

person Dan D.    schedule 08.08.2012
comment
Я пробовал несколько вариантов, поэтому я не особо оставлял два вызова этого метода. Я удалил второй, но круговая диаграмма выглядит так же. - person woyaru; 08.08.2012
comment
Пожалуйста, поделитесь одним скриншотом с setStartAngle(130); и один без этого звонка. - person Dan D.; 08.08.2012
comment
Я поделился двумя скриншотами, как вы хотели. Миллион благодарностей за интерес. - person woyaru; 09.08.2012
comment
Круговые диаграммы на ваших снимках экрана не отображаются опубликованным вами кодом. Ваш код добавляет 2 значения: 81 и 19, что означает, что большой фрагмент должен иметь размер 81%. На ваших скриншотах большой - 75%. У вас есть демоверсия AChartEngine на вашем компьютере? Я могу отправить вам по электронной почте класс PieChartBuilder.java, содержащий ваш код, чтобы посмотреть, как выглядит результирующий круг. - person Dan D.; 09.08.2012
comment
Да ты прав. Я работаю над одним приложением. Я не хотел публиковать фрагмент его макета. Итак, я поделился простым упражнением, в котором я тестировал AChartEngine. Я обновил свой код до правильных значений. Поверьте, код тот же. Но, к сожалению, круговая диаграмма выглядит одинаково для нескольких значений начального угла. У меня есть демо AChartEngine на моем телефоне. Я видел PieChartBuilder.java до того, как начал разрабатывать свое приложение. - person woyaru; 09.08.2012
comment
Вы используете AChartEngine 1.0.0? - person Dan D.; 10.08.2012
comment
См. обновленный файл PieChartBuilder.java здесь: groups.google. .com/forum/?fromgroups#!topic/achartengine/ - person Dan D.; 10.08.2012
comment
Да, я использую AChartEngine 1.0.0 с сайта code.google.com/p/achartengine/. downloads/list Я заменил класс PieChartBuilder.java в демо-версии AChartEngine в моем проекте Eclipse на ваш класс. Я запустил демо, но результат тот же. Я также добавил удобные сообщения Toast. Он до сих пор работает в том же духе. Метод setStartAngle() не работает. Я дополнительно запустил виртуальное устройство Android, но результат тот же. Я действительно застрял. - person woyaru; 10.08.2012
comment
Как выглядит результат? - person Dan D.; 10.08.2012
comment
Всегда выглядит так, будто начальный угол был установлен на значение 0. Несмотря на вызов метода setStartAngle(). Это похоже на скриншоты, которыми я поделился. - person woyaru; 10.08.2012
comment
давайте продолжим обсуждение в чате - person Dan D.; 10.08.2012