I've been trying to get a simple homescreen widget created using aChartEngine as the graphing library, but I can't seem to get the chart to render at all. There doesn't seem to be any error messages either so I'm not sure if I'm doing something wrong.
I have had a chance to see this post (https://groups.google.com/forum/?fromgroups=#!topic/achartengine/ovAU5v39ViE) but I can't seem to find this saveToBitmap method to do so. In the past, I've seen the getDrawingCache method used in AndroidPlot to do the same thing but it doesn't seem to be working.
Here's the code I'm using to get the chart image:
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds)
{
for (int appWidgetId : appWidgetIds)
{
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main);
views.setImageViewBitmap(R.id.myChartView, getChartImage(context));
appWidgetManager.updateAppWidget(appWidgetId, views);
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
private Bitmap getChartImage(Context context)
{
mChartView.setDrawingCacheEnabled(true);
String[] titles = new String[] { "2007", "2008" };
List<double[]> values = new ArrayList<double[]>();
values.add(new double[] { 5230, 7300, 9240, 10540, 7900, 9200, 12030, 11200, 9500, 10500,
11600, 13500 });
values.add(new double[] { 14230, 12300, 14240, 15244, 15900, 19200, 22030, 21200, 19500, 15500,
12600, 14000 });
int[] colors = new int[] { Color.CYAN, Color.BLUE };
XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
renderer.setOrientation(Orientation.VERTICAL);
setChartSettings(renderer, "Monthly sales in the last 2 years", "Month", "Units sold", 0.5,
12.5, 0, 24000, Color.GRAY, Color.LTGRAY);
renderer.setXLabels(1);
renderer.setYLabels(10);
renderer.addXTextLabel(1, "Jan");
renderer.addXTextLabel(3, "Mar");
renderer.addXTextLabel(5, "May");
renderer.addXTextLabel(7, "Jul");
renderer.addXTextLabel(10, "Oct");
renderer.addXTextLabel(12, "Dec");
int length = renderer.getSeriesRendererCount();
for (int i = 0; i < length; i++) {
SimpleSeriesRenderer seriesRenderer = renderer.getSeriesRendererAt(i);
seriesRenderer.setDisplayChartValues(true);
}
mChartView = ChartFactory.getBarChartView(context, buildBarDataset(titles, values), renderer,
Type.DEFAULT);
Bitmap bmp = mChartView.getDrawingCache();
return bmp;
}
Could someone tell me where I'm going wrong?
Thanks!