paragp / achartengine

AChartEngine is a charting library for Android applications. It currently supports the following chart types: line chart area chart scatter chart time chart bar chart pie chart bubble chart doughnut chart range (high-low) bar chart dial chart / gauge combined (any combination of line, cubic line, scatter, bar, range bar, bubble) chart cubic line chart All the above supported chart types can contain multiple series, can be displayed with the X axis horizontally (default) or vertically and support many other custom features. The charts can be built as a view that can be added to a view group or as an intent, such as it can be used to start an activity. The model and the graphing code is well optimized such as it can handle and display huge number of values. AChartEngine is currently at the 1.0.0 release. New chart types will be added in the following releases. Please keep sending your feedback such as we can continually improve this library. Find us on Facebook, too: http://www.facebook.com/achartengine Read a short introduction to AChartEngine here: http://www.javaadvent.com/2012/12/achartengine-charting-library-for.html Another good tutorial can be read here: http://jaxenter.com/effort-free-graphs-on-android-with-achartengine-46199.html
0 stars 1 forks source link

AChartEngine DialChart: DialRenderer.Type.NEEDLE flickers when using SetScale #337

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
>What steps will reproduce the problem?

I'm using the Android AChartEngine 1.1.0 DialChart for an internal company app 
used for real-time data visualization. I'm updating a DialChart frequently (at 
about 10Hz) by applying set() on the CategorySeries attached to the Dial and 
then calling repaint().

>What is the expected output? What do you see instead?

For the most part, things seem to be working great. However, I've noticed that 
when (and only when) I set the visual type to DialRenderer.Type.NEEDLE and also 
set the DialRenderer.setScale to something other than 1, the needle sometimes 
"flickers" and disappears momentarily in an intermittent fashion while being 
updated.

If I set the visual type to ARROW or don't call setScale, I don't observe this 
behavior.

>Please provide a source code snippet that we can use to replicate the issue.

CategorySeries dialDataset = new CategorySeries(dialName);
DialRenderer dialRenderer = new DialRenderer();
dialDataset.add("Current", 0.005);
dialRenderer.setChartTitleTextSize(20);
dialRenderer.setMargins(new int[] {5, 5, 5, 5});
dialRenderer.setZoomEnabled(false);
dialRenderer.setPanEnabled(false);
dialRenderer.setShowLegend(false);
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(Color.BLUE);
dialRenderer.addSeriesRenderer(r);
dialRenderer.setLabelsTextSize(10);
dialRenderer.setLabelsColor(Color.BLACK);
dialRenderer.setShowLabels(true);
dialRenderer.setVisualTypes(new DialRenderer.Type[] {Type.NEEDLE});
// For my test data, I have to use this very small range:
dialRenderer.setMinValue(-0.01); 
dialRenderer.setMaxValue(0.01);
dialRenderer.setScale(1.3f); // Causes pointer flicker w Type.NEEDLE
GraphicalView dial = ChartFactory.getDialChartView(this, dialDataset, 
dialRenderer);
dialLayout.addView(dial);

Then to update:

dialDataset.set(0, "Current", data);
dial.repaint();

>What version of the product binary library are you using?

1.1.0

Original issue reported on code.google.com by ryanrbi...@gmail.com on 7 Aug 2013 at 11:48