我需要绘制带圆角的描边矩形。 这是我的代码:
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);
但正如你所看到的,角落里的线宽更大...... 知道为什么会发生这种情况以及如何解决这个问题吗?
尝试这组代码,它可以工作。
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);
除了使用位图增加尺寸然后绘制之外,我们还可以使用以下解决方案:ShapeDrawable 椭圆形(描边样式)的边缘被切割(Android Studio)