在 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功能的人,我猜你必须同时保存路径和位图 允许用户后退和前进。
我创建了一个函数来在路径上绘制文本:
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功能的人,我猜你必须同时保存路径和位图 允许用户后退和前进。