我想在Android中使用drawRoundRect方法绘制一个圆角矩形。
for loop
我正在使用Android Studio,我的测试设备使用Android 6.0.1,API 23
这是我的代码的一部分。当我在rx和ry中放置零时,它可以找到。
void drawRoundRect (RectF rect, float rx, float ry, Paint paint)
这会在我的屏幕上绘制一个黑色矩形。
但是当我试图将其四舍五入时,
public void draw(Canvas canvas){
canvas.drawColor(Color.WHITE);
canvas.drawRoundRect(rect, 0, 0, pnt);
}
它没有任何吸引力。这只画了白色背景......
我在rx和ry中尝试了不同的数字,如100,3,5,0.03f等,
但是任何大于0的数字都会使drawRoundRect()无效。
我的代码有什么问题......?
答案 0 :(得分:0)
你可以尝试这个我们有一点计算,但它的工作非常棒
private void drawRoundedRect(Canvas canvas, float left, float top, float right, float bottom) {
float radius = getHeight() / 2;
canvas.drawCircle(radius, radius, radius, mainPaint);
canvas.drawCircle(right - radius, radius, radius, mainPaint);
canvas.drawRect(left + radius, top, right - radius, bottom, mainPaint);
}
或者您可以查看
RectF rect = new RectF(10,10,20,20);
canvas.drawRoundRect(rect , 0, 0, mPaint);
答案 1 :(得分:0)
试试这个,
Bitmap bitmap = Bitmap.createBitmap(
600, // Width
300, // Height
Bitmap.Config.ARGB_8888 // Config
);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.WHITE);
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
paint.setAntiAlias(true);
int offset = 50;
RectF rectF = new RectF(
offset, // left
offset, // top
canvas.getWidth() - offset, // right
canvas.getHeight() - offset // bottom
);
int cornersRadius = 25;
canvas.drawRoundRect(
rectF, // rect
cornersRadius, // rx
cornersRadius, // ry
paint // Paint
);
mImageView.setImageBitmap(bitmap);
答案 2 :(得分:0)
您可以这样做
RectF rect = new RectF(0f, 0f, width, height);
canvas.drawRoundRect(rect , 0, 0, mPaint);