グラフ作成ライブラリとして aChartEngine を使用して作成された単純なホームスクリーン ウィジェットを取得しようとしてきましたが、グラフをまったくレンダリングできないようです。エラーメッセージもないようですので、何か間違っているのかどうかわかりません。
この投稿 (https://groups.google.com/forum/?fromgroups=#!topic/achartengine/ovAU5v39ViE) を見る機会がありましたが、この saveToBitmap メソッドを見つけることができないようです。過去に、AndroidPlot で同じことを行うために getDrawingCache メソッドが使用されているのを見たことがありますが、機能していないようです。
チャート画像を取得するために使用しているコードは次のとおりです。
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;
}
誰かが私が間違っているところを教えてもらえますか?
ありがとう!