gpt4 book ai didi

android - 如何在 Android 中单击微调项时重新创建饼图 (AChartEngine)?

转载 作者:行者123 更新时间:2023-11-29 21:02:27 25 4
gpt4 key购买 nike

我正在使用 AChartEngine 库在我的项目的 PieChart View 中显示数据。最初我创建了 DatasetRenderViewChart Factory 来创建 PieChart 及其工作正常。例如,性别饼图

OnCreate(){
malecount = 3;
femalecount = 1;

createpiechart(); // Creating PieChart initially
}

这段代码运行良好。具有男性和女性的饼图,具有 2 种不同的颜色,提到为静态。 现在我为过滤器添加 Spinner,为该 Spinner OnItemSelectedListener 添加事件。

String selectedItem = parent.getItemAtPosition(position).toString();
if(selectedItem.equals("Last Week"))
{
malecount = 2; femalecount = 1; // clear existing values from temp memory and add new values
mSeries.clear(); // clear the dataset

createpiechart(); // recreate piechart
}

在创建饼图方法中再次执行与之前相同的代码。

private void createpiechart() {

VALUES = new int[] { malecount, femalecount };
mRenderer.setChartTitle("Gender");
mRenderer.setChartTitleTextSize(20);
mRenderer.setLabelsColor(0xff000000); // Black color
mRenderer.setLabelsTextSize(15);
mRenderer.setLegendTextSize(15);
mRenderer.setMargins(new int[] { 20, 30, 15, 0 });
mRenderer.setZoomButtonsVisible(true);
mRenderer.setStartAngle(90);


for (int i = 0; i < VALUES.length; i++) {

mSeries.add(NAME_LIST[i] + " " + VALUES[i], VALUES[i]);
SimpleSeriesRenderer renderer = new SimpleSeriesRenderer();
renderer.setColor(COLORS[(mSeries.getItemCount() - 1)
% COLORS.length]);
mRenderer.addSeriesRenderer(renderer);
}

if (mChartView != null) {
mChartView.repaint();
}

if (mChartView == null) {
LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
mChartView = ChartFactory.getPieChartView(this, mSeries, mRenderer);
mRenderer.setClickEnabled(true);
mRenderer.setSelectableBuffer(10);

mChartView.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// nothing
}
});
layout.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
}
else {
mChartView.repaint();
}
}

执行相同的代码后,底部男性和女性的绿色和蓝色变为白色,我需要相同的颜色才能显示。检查下面的这张图片并帮助我如何改回该颜色或这段代码有什么问题?

enter image description here

最佳答案

只需清除 Dataset 和 Renderer,然后传递新值。

清除数据集

int size = dataset.getSeriesCount();
for (int i = 0; i < size; i++) {
dataset.removeSeries(0);
}

清除渲染器renderer.removeAllRenderers();

关于android - 如何在 Android 中单击微调项时重新创建饼图 (AChartEngine)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25617425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com