我需要重复类似的行为谷歌适配图表。当图表被按下或拖动时,我们会在图表上显示荧光笔。手指后,不要触摸图表-移除荧光笔。我在图表上找到了用于点击的"onTap“变量--但是只有当我们点击然后从屏幕上移除手指时,它才是工作的。但我需要在手指触碰图之后显示荧光笔
发布于 2022-07-06 05:19:13
MakerView和OnChartGestureListener可以帮助您,onChartGestureEnd告诉您什么时候标记应该消失:
final MyMarkerView marker = new MyMarkerView(this, R.layout.custom_marker_view);
chart.setMarker(marker);
chart.setDrawMarkers(true);
chart.setOnChartGestureListener(new OnChartGestureListener() {
@Override
public void onChartGestureStart(MotionEvent me,
ChartTouchListener.ChartGesture lastPerformedGesture) {
chart.setDrawMarkers(true);
for(int i = 0; i < chart.getLineData().getDataSetCount(); ++i) {
ILineDataSet set = chart.getLineData().getDataSetByIndex(i);
set.setHighlightEnabled(true);
}
// Thanks to Mr. SoulReaver313 !
chart.highlightValue(chart.getHighlightByTouchPoint(me.getX(), me.getY()));
}
@Override
public void onChartGestureEnd(MotionEvent me,
ChartTouchListener.ChartGesture lastPerformedGesture) {
chart.setDrawMarkers(false);
for(int i = 0; i < chart.getLineData().getDataSetCount(); ++i) {
ILineDataSet set = chart.getLineData().getDataSetByIndex(i);
set.setHighlightEnabled(false);
}
chart.invalidate();
}
@Override
public void onChartLongPressed(MotionEvent me) {
}
@Override
public void onChartDoubleTapped(MotionEvent me) {
}
@Override
public void onChartSingleTapped(MotionEvent me) {
}
@Override
public void onChartFling(MotionEvent me1, MotionEvent me2, float velocityX,
float velocityY) {
}
@Override
public void onChartScale(MotionEvent me, float scaleX, float scaleY) {
}
@Override
public void onChartTranslate(MotionEvent me, float dX, float dY) {
}
});

https://stackoverflow.com/questions/72869241
复制相似问题