4

我需要在视图上将单个字符绘制为大细文本,如下图所示(文本只是简单的线条)

在此处输入图像描述

但是我下面的代码给了我下面的图像(文本为形状)

    Paint dPaint = new Paint();
    dPaint.setAntiAlias(true);
    dPaint.setDither(true);
    dPaint.setColor(Color.RED);
    dPaint.setTextSize(getWidth()*.8F);
    dPaint.setStyle(Paint.Style.STROKE);
    dPaint.setStrokeWidth(1);
    canvas.drawText("A",getWidth()*.3F, getHeight()*.6F, dPaint);

在此处输入图像描述

我尝试了各种绘画和描边属性,但都没有成功。我也读到了java 2D文本被绘制为形状。

有没有办法将文本(特别是字符)绘制为线条而不是形状。文字向下也应该是大的。

4

2 回答 2

1

我认为只有两种方法可以实现您的要求。

使用带有您的字体样式的自定义字体类型,并在您的应用程序中使用它,如下所示

    TextView text = (TextView) findViewById(R.id.textView);
    Typeface customFont = Typeface.createFromAsset(getAssets(), "ThinText.ttf");
    text.setTypeface(customFont);

另一种技术是您必须通过计算路径中绘制字母或数字所需的坐标来将给定字符的形状绘制为线条。

我希望它可以帮助你。

于 2012-01-28T10:06:25.930 回答
0

你增加strokewidth,然后 thin 像这样增加:

dPaint.setStrokeWidth(5);
于 2012-01-28T09:08:55.823 回答