在 Android 中的路径上绘制文本是否需要位图?

Is a bitmap required for drawing text on path in Android?

我创建了一个函数来在路径上绘制文本:

    public void drawText(float x, float y, String text) {
        Log.i("DRAWING", "drawText");Typeface.BOLD);
        mPath.reset();
        mPath.moveTo(x, y);
        mPath.lineTo(x+200,y);

        Paint textPaint = new Paint();
        textPaint.setColor(Color.RED);
        textPaint.setTextSize(20f);
        textPaint.setAntiAlias(true);
        textPaint.setStrokeWidth(5f);
        textPaint.setStyle(Paint.Style.FILL);

        mCanvas.drawTextOnPath(text, mPath, 0, 0, textPaint);
        setLayerType(View.LAYER_TYPE_SOFTWARE, null);
        paths.add(mPath);
        invalidate();
    }

我这样设置Bitmap

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh)
    {
        mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
        mCanvas = new Canvas();
        mCanvas.setBitmap(mBitmap);
        reset();
    }

问题:

当我设置位图时,它工作正常并且文本出现在 ImageView 上,但是当我不设置时,只出现一条白线而不是文本。 我是否必须使用 Bitmap 在带有 drawTextOnPath 的路径上绘制文本?因为我只想使用路径(除了文本之外一切正常,就像它需要一个 Bitmap)。

所以Bitmap必须drawTextOnPath绘制文本。

没有Bitmap.

就不会出现文字

对于那些像我一样实现了Undo/Redo功能的人,我猜你必须同时保存路径和位图 允许用户后退和前进。