Android 不使用canvas.path沿手指画线

Android 不使用canvas.path沿手指画线,android,canvas,Android,Canvas,在这个例子中,一个预定义的函数被绘制到一个交互式图表中。这是示例中使用的代码: /** * The simple math function Y = fun(X) to draw on the chart. * @param x The X value * @return The Y value */ protected static float fun(float x) { return (float) Math.pow(x, 3) - x / 4; } ....

在这个例子中,一个预定义的函数被绘制到一个交互式图表中。这是示例中使用的代码:

 /**
 * The simple math function Y = fun(X) to draw on the chart.
 * @param x The X value
 * @return The Y value
 */
protected static float fun(float x) {
    return (float) Math.pow(x, 3) - x / 4;
}

....

    private void drawDataSeriesUnclipped(Canvas canvas) {
        mSeriesLinesBuffer[0] = mContentRect.left;
        mSeriesLinesBuffer[1] = getDrawY(fun(mCurrentViewport.left));
        mSeriesLinesBuffer[2] = mSeriesLinesBuffer[0];
        mSeriesLinesBuffer[3] = mSeriesLinesBuffer[1];
        float x;
        for (int i = 1; i <= DRAW_STEPS; i++) {
            mSeriesLinesBuffer[i * 4 + 0] = mSeriesLinesBuffer[(i - 1) * 4 + 2];
            mSeriesLinesBuffer[i * 4 + 1] = mSeriesLinesBuffer[(i - 1) * 4 + 3];

            x = (mCurrentViewport.left + (mCurrentViewport.width() / DRAW_STEPS * i));
            mSeriesLinesBuffer[i * 4 + 2] = getDrawX(x);
            mSeriesLinesBuffer[i * 4 + 3] = getDrawY(fun(x));
        }
        canvas.drawLines(mSeriesLinesBuffer, mDataPaint);
    }
然后我更改了
fun
,如果传递了点的x值,则返回点的正确y值:

protected static float fun(float x) {


        float currX = 0;
        float currY = 0;

        for (int i = 0; i < pointsList.size(); i++) {
            Point curr = pointsList.get(i);
            currX = curr.x;
            currY = curr.y;
        }

        if (currX == x) {
            return currY;
        }
受保护的静态浮动乐趣(浮动x){
浮动电流x=0;
浮动咖喱=0;
对于(int i=0;i
我知道这是一个很长很复杂的问题,但我真的不知道还能做什么,我已经尝试了所有的方法,但都无法找到解决方案,所以如果有人能抽出时间来看看我的问题,我将不胜感激

总结一下我的问题: -我想根据用户手指的触摸画一条线
-我需要在没有路径的情况下完成它,但使用上述方法,请绘制一种草图:您希望如何获得它,您到目前为止拥有什么等等。口头上很难理解您想要什么。我不认为草图真的会有帮助,因为目前没有绘制任何东西。
protected static float fun(float x) {


        float currX = 0;
        float currY = 0;

        for (int i = 0; i < pointsList.size(); i++) {
            Point curr = pointsList.get(i);
            currX = curr.x;
            currY = curr.y;
        }

        if (currX == x) {
            return currY;
        }