Achartengine:之前删除图和重绘新的图表 [英] Achartengine : remove chart before and redraw new chart
问题描述
我真的frustased使用achartengine图书馆,我必须删除视图重新绘制的图表,但我的图只是让新的顶级图表上,我真的很困惑...我有搜索的任何方法,但我不能得到它..这是之前我的问题:<一href=\"http://stackoverflow.com/questions/16665210/achartengine-how-to-repaint-redraw-chart\">achartengine :如何重绘/重绘图表
i really frustased to redraw chart using achartengine library, i have remove view, but my chart just make new on top chart, i really confused... i have search any method but i can't get it.. this is my question before : achartengine : how to repaint / redraw chart
如何重绘我的图表,每次我滑到我的搜索栏?
how to redraw my chart everytime i slide my seekbar?
这是我的源$ C $ C:
this is my source code :
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
if (mChartView == null) {
lnChart = (LinearLayout) findViewById(R.id.chart);
mChartView = ChartFactory.getLineChartView(this, mDataset, mRenderer);
mChartView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SeriesSelection seriesSelection = mChartView.getCurrentSeriesAndPoint();
double[] xy = mChartView.toRealPoint(0);
if (seriesSelection == null) {
Toast.makeText(getApplicationContext(), "tidak ada chart yang dipilih", Toast.LENGTH_SHORT)
.show();
} else {
Toast.makeText(
getApplicationContext(),
"Nilai " + listData.get(seriesSelection.getPointIndex()).getInuNilai()+
" tanggal " + listData.get(seriesSelection.getPointIndex()).getTanggal(),
Toast.LENGTH_SHORT).show();
}
}
});
lnChart.addView(mChartView, 0, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
}
else {
mChartView.repaint();
}
}
public void renderChart(ArrayList<NabDetail> listData) {
// TODO Auto-generated method stub
String seriesTitle = "";
XYSeries series = new XYSeries(seriesTitle);
mDataset.addSeries(series);
mCurrentSeries = series;
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setFillBelowLine(true);
renderer.setFillBelowLineColor(Color.TRANSPARENT);
renderer.setColor(Color.YELLOW);
mRenderer.addSeriesRenderer(renderer);
mRenderer.setInScroll(true);
mRenderer.setShowLegend(false);
//hide x label
mRenderer.setXLabels(RESULT_OK);
renderer.setFillPoints(true);
mCurrentRenderer = renderer;
for (int i = 0; i < listData.size(); i++) {
mCurrentSeries.add(i,listData.get(i).getInuNilai()
);
}
if (mChartView != null) {
lnChart.removeViewAt(0);
mChartView.repaint();
}
}
}
我已经使用 lnChart.removeViewAt(0);
,但我的图表还没有重绘......所以如何重绘和之前删除图表?我在哪里必须把正确的code?
mChartView.repaint();
i have used lnChart.removeViewAt(0);
mChartView.repaint();
but my chart still not redraw... so how to redraw and remove chart before? where am i must put the right code?
请..我希望有人能帮助我解决这个问题。
please.. i hope someone can help me to solve this problem
推荐答案
这件code应该为你工作。
This piece of code should work for you.
public void renderChart(ArrayList<NabDetail> listData) {
// Clear your previous chart DataSet and Renderer.
mDataSet.clear();
mRenderer = new XYMultipleSeriesRenderer();
String seriesTitle = "";
XYSeries series = new XYSeries(seriesTitle);
mDataset.addSeries(series);
mCurrentSeries = series;
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setFillBelowLine(true);
renderer.setFillBelowLineColor(Color.TRANSPARENT);
renderer.setColor(Color.YELLOW);
mRenderer.addSeriesRenderer(renderer);
mRenderer.setInScroll(true);
mRenderer.setShowLegend(false);
//hide x label
mRenderer.setXLabels(RESULT_OK);
renderer.setFillPoints(true);
mCurrentRenderer = renderer;
for (int i = 0; i < listData.size(); i++) {
mCurrentSeries.add(i,listData.get(i).getInuNilai());
}
// repaint your chart with new mDataSet and mRenderer.
repaint();
}
private void repaint() {
lnChart = (LinearLayout) findViewById(R.id.chart);
if (mChartView != null) {
lnChart.removeView(mChartView);
}
mChartView = ChartFactory.getLineChartView(this, mDataset, mRenderer);
lnChart.addView(mChartView, 0, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
}
这篇关于Achartengine:之前删除图和重绘新的图表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!