首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当图表处于按下状态或拖动状态时,如何仅在LineChart中显示高亮显示?

当图表处于按下状态或拖动状态时,如何仅在LineChart中显示高亮显示?
EN

Stack Overflow用户
提问于 2022-07-05 12:12:25
回答 1查看 277关注 0票数 1

我需要重复类似的行为谷歌适配图表。当图表被按下或拖动时,我们会在图表上显示荧光笔。手指后,不要触摸图表-移除荧光笔。我在图表上找到了用于点击的"onTap“变量--但是只有当我们点击然后从屏幕上移除手指时,它才是工作的。但我需要在手指触碰图之后显示荧光笔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-06 05:19:13

MakerView和OnChartGestureListener可以帮助您,onChartGestureEnd告诉您什么时候标记应该消失:

代码语言:javascript
复制
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) {

    }
});

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72869241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档