में कोई रेखा खींचें मैं एक ऊर्ध्वाधर कर्सर स्थान जहां मैं चार्ट क्षेत्र स्पर्श पर दिखाने के लिए करना चाहते हैं। इस पंक्ति से जुड़ा एक टेक्स्टव्यू बार के मान को उस बिंदु के वाई-अक्ष मान को प्रदर्शित करेगा। और जब मैं अपनी अंगुली को बाएं हाथ में रखता हूं, जबकि मेरी उंगली नीचे [बाएं-चाल या दाएं स्थानांतरित] रखते हैं, तो यह लंबवत कर्सर तदनुसार आगे बढ़ेगा और टेक्स्टव्यू भी साथ ही पालन करेगा लेकिन y-axis मान प्रदर्शित करेगा नया स्थान (जैसे) यह चलता है।aChartEngine
मुझे लगता है कि GraphicalView एक touchlistener कि मैं कॉलबैक प्राप्त करने के लिए रजिस्टर कर सकते हैं है - लेकिन मैं उस समय के बाद से है कि उपयोग करने के लिए कैसे अनजान हूँ। मैं टचचेन्ट को किसी प्रकार के जेस्चरलिस्टर से भी जोड़ सकता हूं। लेकिन मैं वर्टिकल कर्सर लाइन कैसे आकर्षित करूं जो ओवरले वर्तमान चार्ट के शीर्ष पर जाती है?
अन्य समस्या यह है कि मैं एक सच्चे मैं mChart.getCurrentSeriesAndPoint के मूल्यों नहीं मिल सकता है लौटने जब() onTuuch में, है है; , हमेशा नल लौटें, लेकिन अगर मैं झूठी वापसी पर बदलता हूं तो मैं मूल्य प्राप्त कर सकता हूं लेकिन मैं फिर से पहुंच नहीं सकता।
यह मेरा कोड
mChart.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_CANCEL) {
dataset.removeSeries(dataset.getSeriesCount()-1);
multiRenderer.removeSeriesRenderer(GraficaCuatro);
}
if (event.getAction() == MotionEvent.ACTION_DOWN) {
multiRenderer.setPanEnabled(false);
multiRenderer.setZoomEnabled(false);
SeriesSelection seriesSelection = mChart.getCurrentSeriesAndPoint();
if(seriesSelection != null)
{
Toast.makeText(
getActivity().getBaseContext(),"Hola",
Toast.LENGTH_SHORT).show();
}
XYSeries Line = new XYSeries("");
Line.add(event.getX()/1.5,minValue);
Line.add(event.getX()/1.5,maxValue);
dataset.addSeries(Line);
multiRenderer.addSeriesRenderer(GraficaCuatro);
}
if (event.getAction() == MotionEvent.ACTION_MOVE) {
dataset.removeSeries(dataset.getSeriesCount()-1);
multiRenderer.removeSeriesRenderer(GraficaCuatro);
XYSeries Line = new XYSeries("");
Line.add(event.getX()/1.5,minValue);
Line.add(event.getX()/1.5,maxValue);
dataset.addSeries(Line);
multiRenderer.addSeriesRenderer(GraficaCuatro);
}
if (event.getAction() == MotionEvent.ACTION_UP) {
dataset.removeSeries(dataset.getSeriesCount()-1);
multiRenderer.removeSeriesRenderer(GraficaCuatro);
}
mChart.repaint();
return true;
}
});
मैं वास्तव में यह पसंद करेंगे है।
dwef http://s2.subirimagenes.com/imagen/previo/thump_82994131.png कृपया मुझे मदद की जरूरत है!
संपादित करें: यह मेरा onTouch कोड जब मैं सच वापसी है; टच में, रीयलपॉइंट() से मूल्य; और श्रृंखला चयन गलत हैं, अगर मैं गलत में बदलता हूं तो मैं वास्तविक मान प्राप्त कर सकता हूं। कृपया
mChart.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
SeriesSelection seriesSelection = mChart.getCurrentSeriesAndPoint();
double[]values = mChart.toRealPoint(0);
if(seriesSelection != null)
{
if (event.getAction() == MotionEvent.ACTION_CANCEL) {
dataset.removeSeries(dataset.getSeriesCount()-1);
multiRenderer.removeSeriesRenderer(GraficaCuatro);
}
if (event.getAction() == MotionEvent.ACTION_DOWN) {
XYSeries Line = new XYSeries("");
Line.add(seriesSelection.getXValue(),minValue);
Line.add(seriesSelection.getXValue(),maxValue);
dataset.addSeries(Line);
multiRenderer.addSeriesRenderer(GraficaCuatro);
}
if (event.getAction() == MotionEvent.ACTION_MOVE) {
dataset.removeSeries(dataset.getSeriesCount()-1);
multiRenderer.removeSeriesRenderer(GraficaCuatro);
XYSeries Line = new XYSeries("");
Line.add(seriesSelection.getXValue(),minValue);
Line.add(seriesSelection.getXValue(),maxValue);
dataset.addSeries(Line);
multiRenderer.addSeriesRenderer(GraficaCuatro);
}
if (event.getAction() == MotionEvent.ACTION_UP) {
dataset.removeSeries(dataset.getSeriesCount()-1);
multiRenderer.removeSeriesRenderer(GraficaCuatro);
}
}
mChart.repaint();
return true;
}
});
धन्यवाद दान। ऑनक्लिक घटना मेरे लिए काम नहीं करती है क्योंकि मुझे स्क्रीन को छूने और अपनी अंगुली को चारों ओर ले जाने के दौरान मूल्यों को प्राप्त करने की आवश्यकता है। यही कारण है कि मैं ऑन टचलिस्टर का उपयोग कर रहा हूं, समस्या यह है कि "getCurrentSeriesAndPoint()" घटना पर केवल "वापसी झूठी" पंक्ति के साथ मान देता है; लेकिन उस मामले में यह केवल एक बार काम करता है। अगर मैं "सच वापसी" के लिए रेखा बदलता हूं ऐसा लगता है कि हर बार काम करता है लेकिन यह मूल्य कभी नहीं देता है। – SairSalazar
कोड उदाहरण: mChart.setOnTouchListener (नया दृश्य।ऑन टच लिस्टनर() { @ ओवरराइड सार्वजनिक बूलियन ऑन टच (देखें वी, मोशनवेवेंट इवेंट) { श्रृंखला चयन श्रृंखला चयन = mChart.getCurrentSeriesAndPoint(); } सत्य लौटें; } }); – SairSalazar
मेरा अद्यतन उत्तर देखें। –