【问题标题】:Uneven line width in drawn stroke rectangle绘制的笔划矩形中的线宽不均匀
【发布时间】:2016-02-06 10:55:40
【问题描述】:

我需要绘制带圆角的描边矩形。 这是我的代码:

mLinePaint = new Paint();
mLinePaint.setColor(mDotColorTouched);
mLinePaint.setAntiAlias(true);
mLinePaint.setStrokeWidth(mLineWidth);
mLinePaint.setStyle(Paint.Style.STROKE);
mLinePaint.setStrokeCap(Paint.Cap.ROUND);

    bitmap = Bitmap.createBitmap(300, 
300, Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(bitmap);
    RectF r = new RectF(0, 0, 300 , 300);
    c.drawRoundRect(r, 30, 30, mLinePaint);

但是你可以看到角落的线宽更大...... 知道为什么会发生这种情况以及如何解决这个问题吗?

这里是屏幕

【问题讨论】:

  • 如果你注释掉这行mLinePaint.setStrokeCap(Paint.Cap.ROUND);会发生什么?
  • 不,这不会改变任何事情......

标签: android android-canvas draw paint


【解决方案1】:

试试这组代码吧。

    Paint paint = new Paint();
    paint.setStyle(Paint.Style.STROKE);
    paint.setColor(Color.BLUE);
    paint.setStrokeWidth(10);

    Bitmap b = Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(b);
    RectF rectF = new RectF();
    rectF.set(5,5,250,250);
    c.drawRoundRect(rectF, 10, 10, paint);

    imgView.setImageBitmap(b);

【讨论】:

  • 如果您的答案的主要思想是绘制比位图更小的矩形 - 那么您的答案是正确的。谢谢
猜你喜欢
  • 2016-05-02
  • 2017-02-09
  • 1970-01-01
  • 2015-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多