如果 Build.VERSION.SDK_INT < 21,如何绘制 RoundRect()?
How to drawRoundRect() if Build.VERSION.SDK_INT < 21?
方法 canvas.drawRoundRect()
仅适用于具有 Build.VERSION.SDK_INT >= 21
的设备。
方法canvas.drawArc()
还需要SDK_INT >= 21
。
是否可以在旧设备上绘制 RoundRect?
drawRoundRect
有两个版本。 for lower apis(<21) 接受 Rect
作为参数。
所以你可以这样做:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
paint.setAntiAlias(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
canvas.drawRoundRect(0, 0, 0, 0, 2f, 3f, paint);
} else {
RectF rect = new RectF(10, 10, 20, 20);
canvas.drawRoundRect(rect, 0, 0, paint);
}
}
根据您的用例更改值。
方法 canvas.drawRoundRect()
仅适用于具有 Build.VERSION.SDK_INT >= 21
的设备。
方法canvas.drawArc()
还需要SDK_INT >= 21
。
是否可以在旧设备上绘制 RoundRect?
drawRoundRect
有两个版本。 for lower apis(<21) 接受 Rect
作为参数。
所以你可以这样做:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
paint.setAntiAlias(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
canvas.drawRoundRect(0, 0, 0, 0, 2f, 3f, paint);
} else {
RectF rect = new RectF(10, 10, 20, 20);
canvas.drawRoundRect(rect, 0, 0, paint);
}
}
根据您的用例更改值。