首页>Program>source

我想在我的应用程序中显示以下文本.我正在使用 Paint FILL_AND_STROKE风格的学生 为达到这个.但只有一种方法 setColor() 可用于设置颜色。

如何设置不同的笔触和填充颜色?

最新回答
  • 7天前
    1 #

    内部自定义TextView(在EditText中不起作用):

    @Override
    public void onDraw(Canvas canvas)
    {
        final ColorStateList textColor = getTextColors();
        TextPaint paint = this.getPaint();
        paint.setStyle(Style.STROKE);
        paint.setStrokeJoin(Join.ROUND);
        paint.setStrokeMiter(10);
        this.setTextColor(strokeColor);
        paint.setStrokeWidth(strokeWidth);
        super.onDraw(canvas);
        paint.setStyle(Style.FILL);
        setTextColor(textColor);
        super.onDraw(canvas);
    }
    

  • 7天前
    2 #

    不要使用FILL_AND_STROKE.使用FILL绘制一次,然后更改颜色并使用STROKE绘制。

    (适用于矩形。我不确定STROKE是否适用于文本。您必须尝试一下并找出答案。)

  • 7天前
    3 #

    不太确定,但也许您可以使用

    链接

    TextView test = (TextView) findViewById(R.id.test);
     test.setShadowLayer(float, float, float, int);
    

  • 7天前
    4 #

    我使用上面的第一个解决方案提出了这个想法:放下较大的STROKE,文本,然后在其上覆盖较小的FILL_AND_STROKE文本:

    mScorePaint = new TextPaint();
    mScorePaint.setTextSize(63);
    mScorePaint.setStyle(Style.STROKE);
    mScorePaint.setStrokeJoin(Join.ROUND);
    mScorePaint.setStrokeMiter(10.0f);
    mScorePaint.setStrokeWidth(frameWidth/50.0f); // about 12
    mScorePaint.setColor(0xffff0000); // black
    c.drawText(Integer.toString(mScore), x, y, mScorePaint);  // red first
    mScorePaint.setStrokeWidth(frameWidth/125.0f); // about 5
    mScorePaint.setColor(0xff000000); // red
    c.drawText(Integer.toString(mScore), x, y, mScorePaint);  // black on top
    

    因为仅FILL并没有看到任何Stroke属性,并且变得非常稀薄。

  • php:SimpleXml如何正确设置编码和xmins?
  • amazon web services:AwS Lambda中可用的虚拟处理器核心最大数量是多少?