仅在按下按照状态或阻力状态以图表时,如何在LineChart中显示突出显示?

发布于 2025-02-13 12:25:40 字数 144 浏览 0 评论 0 原文

我需要重复与Google Fit图表相似的行为。按下图表或拖动图表时 - 我们在图表上显示荧光笔。手指之后,请勿触摸图表 - 卸下荧光笔。我发现“ ONTAP”可变量用于点击图表 - 但是只有在我们点击时才工作,然后从屏幕上删除手指。但是我需要在手指触摸图表后立即显示荧光笔

I need to repeat similar behavior to Google Fit charts. When chart is pressed or dragging - we show highlighter on chart. Right after finger don't touch chart - remove highlighter. I found "onTap" variable for tap on chart - but it's work only when we tap and then remove finger from screen. But i need to show highlighter right after finger touched chart

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ㄖ落Θ余辉 2025-02-20 12:25:40

Magerview和Oncharturelisteristener可以帮助您,OnCharteLureEnd告诉标记应何时应该消失:

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) {

    }
});

”输入图像描述在这里”

The MakerView and OnChartGestureListener can help, onChartGestureEnd tells when should the marker should disappear:

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) {

    }
});

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文