3

新しいテーマを設定すると、AChartEngine はテーマからのデフォルトの背景を尊重しなくなります。これを解決するために何度か試みましたが、成功しませんでした。私は何をする必要がありますか?

からの設定styles.xml:

res/values/styles.xml: <style name="AppTheme" parent="android:Theme.Holo.Light" />
res/values-v11/styles.xml: <style name="AppTheme" parent="android:Theme.Light" />

マニフェストの一部:

<application
    ...
    android:theme="@style/AppTheme" >

コード例:

XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(timeSeries);

XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setAxesColor(Color.GRAY);
renderer.setAxisTitleTextSize(16);
renderer.setChartTitle(label);
renderer.setChartTitleTextSize(20);
renderer.setGridColor(Color.GRAY);
renderer.setLabelsColor(Color.LTGRAY);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);
renderer.setMargins(new int[] {
        20, 30, 15, 0
});
renderer.setPointSize((float) 5.0);
renderer.setShowGrid(true);
renderer.setXLabels(10);
renderer.setXTitle(getString(R.string.txt_datum));
renderer.setYLabels(10);
renderer.setYTitle(MyPreferenceActivity.getWaehrung());
renderer.setZoomButtonsVisible(true);

int[] colors = new int[] {
        Color.RED
};
PointStyle[] pointStyles = new PointStyle[] {
        PointStyle.POINT
};
for (int i = 0; i < colors.length; i++) {
    XYSeriesRenderer tempRenderer = new XYSeriesRenderer();
    tempRenderer.setColor(colors[i]);
    tempRenderer.setPointStyle(pointStyles[i]);
    renderer.addSeriesRenderer(tempRenderer);
}

GraphicalView graphicalView = ChartFactory.getTimeChartView(this,
        dataset, renderer, null);

layout.addView(graphicalView, new LayoutParams(LayoutParams.FILL_PARENT,
        LayoutParams.FILL_PARENT));

結果の画像。間違った黒い背景はどこから来たのですか?

ここに画像の説明を入力

4

2 に答える 2

3

はい、バグかもしれません。AChartEngine は、テーマからのデフォルトの背景を尊重しなくなりました。可能な解決策は、余白の色を設定することです。

renderer.setMarginsColor(Color.WHITE);

ここここを参照 してください。

于 2012-11-20T12:25:46.683 に答える
2

おそらく、チャートの背景を手動で設定する必要があります。

renderer.setApplyBackgroundColor(true);
renderer.setBackgroundColor(color);
于 2012-11-05T16:37:37.443 に答える