MPAndroidChart设置中心垂直线

R4j*_*R4j 10 charts android mpandroidchart

我想在LineChart这个中心设置一条垂直线:

在此输入图像描述

滚动到每个点时,它可以通知更改下面的日期(橙色日期字段).它可以通过单击箭头按钮以编程方式向左或向右移动.

目前,我可以使用以下代码设置视口并允许移动到中心:

LineData data = new LineData(xVals, dataSets);
mChart.setScaleMinima((float) data.getXValCount() / 7f, 1f);
mChart.moveViewTo(0, 7, YAxis.AxisDependency.LEFT);
Run Code Online (Sandbox Code Playgroud)

得到结果:

在此输入图像描述

如何绘制和设置如上所示的垂直线?

更新:

对于听众,我认为OnChartGestureListener onChartTranslate(MotionEvent me, float dX, float dY)可能有所帮助.我需要的是2点之间的距离以及如何计算当前视口中有多少点.有谁知道吗?

Cor*_*ton 6

您是否尝试getEntryByTouchPoint在图表上使用提供图表中心的x和y坐标?

public Entry getEntryByTouchPoint(float x, float y)

返回Entry在图表的触摸位置显示的对象


Lan*_*tka 5

看看这个方法

protected void drawGridBackground(Canvas c) {
Run Code Online (Sandbox Code Playgroud)

在BarLineChartBase类中(LineChart的父级).在该方法中,您可以使用所有数据在中间绘制线条.像这样的东西

RectF rectF = mViewPortHandler.getContentRect();
float xMiddle = (rectF.right - rectF.left)/2;
Paint p = new Paint();
p.setColor(Color.BLACK);
c.drawLine(xMiddle, rectF.bottom, xMiddle, rectF.top, p);
Run Code Online (Sandbox Code Playgroud)