0
다음과 같이터치에 산점도에 지점을 추가하지만 첫 터치 이벤트 만하고있다 (achartengine) 여기
private GraphicalView mChart;
mChart.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP)
{
xy = mChart.toRealPoint(0);
flagtouch =1;
seriestouch.add(xy[0],xy[1]);
addseries();
view.removeView(mChart);
mChart=null;
drawgraph(ch);
}
return false;
}
});
addseries 기능이 내 OnTouchListener()입니다 : -
private void addseries()
{
XYSeries series = new XYSeries("Series 1");
for(int i=0;i<size;i++)
{
series.add(value1[i],value2[i]);
}
dataset = new XYMultipleSeriesDataset();
dataset.addSeries(series);
if(flagtouch==1)
{
dataset.addSeries(seriestouch);
}
}
드로우 그래프 기능은 다음과 같습니다 : -
private void drawgraph()
{
mRenderer = new XYMultipleSeriesRenderer();
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setColor(Color.RED);
renderer.setPointStyle(PointStyle.CIRCLE);
renderer.setFillPoints(true);
mRenderer.addSeriesRenderer(renderer);
if(flagtouch==1)
{
XYSeriesRenderer renderer1 = new XYSeriesRenderer();
renderer1.setColor(Color.YELLOW);
renderer1.setPointStyle(PointStyle.CIRCLE);
renderer1.setFillPoints(true);
mRenderer.addSeriesRenderer(renderer1);
}
mRenderer.setXTitle(colnam.get(0));
mRenderer.setYTitle(colnam.get(1));
mRenderer.setShowLegend(false);
mRenderer.setMargins(new int[]{10,45,60,0});
title.setText("Scatter Plot");
mChart = ChartFactory.getScatterChartView(this, dataset, mRenderer);
view.addView(mChart);
}
새로운 점은 첫 번째 터치 이브에만 표시됩니다 nt, 이후 touch 이벤트에 대해 touchListener()가 전혀 호출되지 않음 Log를 사용하여 체크 한 후 "mChart = ChartFactory.getScatterChartView (this, dataset, mRenderer);" flagtouch = 1 일 때마다 모든 터치에서 touchlistener()가 호출되지만 그래프에서 아무 것도 변경되지 않으므로 아무 쓸모가 없습니다.
무엇 값 1 [I] 1, 값 [i]는? – keshav