【问题标题】:How to set stroke color to draw a rectangle on canvas?如何设置笔触颜色以在画布上绘制矩形?
【发布时间】:2016-09-13 12:13:04
【问题描述】:

我想绘制一个圆形矩形,它的笔触是蓝色的,填充是红色的,但是我在 Paint 类中找不到设置笔触颜色的方法。我该怎么做?

    mCanvas.drawColor(mBackgroundColor, PorterDuff.Mode.CLEAR);
    mCanvas.setDrawFilter(mPaintFlagsDrawFilter);

    mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
    mPaint.setColor(Color.RED);
    mPaint.setStrokeWidth(2);
    mPaint.setStrokeCap(Paint.Cap.ROUND);
    mRectF.set(0, 0, mWidth, mHeight);
    mCanvas.drawRoundRect(mRectF, 10, 10, mPaint);

【问题讨论】:

  • FILL 样式绘制红色矩形,然后在同一位置用STROKE 样式绘制蓝色矩形。

标签: android android-canvas


【解决方案1】:

油漆一次只允许一种颜色。

mCanvas.drawColor(mBackgroundColor, PorterDuff.Mode.CLEAR);
mCanvas.setDrawFilter(mPaintFlagsDrawFilter);

mFillPaint.setStyle(Paint.Style.FILL);
mFillPaint.setColor(Color.RED);
mStrokePaint.setStyle(Paint.Style.STROKE);
mStrokePaint.setColor(Color.BLUE);
mStrokePaint.setStrokeWidth(2);
mStrokePaint.setStrokeCap(Paint.Cap.ROUND);
mRectF.set(0, 0, mWidth, mHeight);
mCanvas.drawRoundRect(mRectF, 10, 10, mFillPaint);
mCanvas.drawRoundRect(mRectF, 10, 10, mStrokePaint);

如果您发现圆角矩形看起来不正确,它可能会在视图边界处被剪裁。调整 RectF 以允许一半的 StrokeWidth:

mRectF.set(1, 1, mWidth - 1, mHeight - 1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多