要实现安卓四边切割角的效果,可以通过自定义一个 View,并在其 onDraw 方法中绘制四个带有圆角的矩形。
以下是一个示例代码:
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.View;
public class RoundedCornersView extends View {
private Paint paint;
private Path path;
private RectF rectF;
private int cornerRadius = 50; // 圆角半径
public RoundedCornersView(Context context) {
super(context);
init();
}
public RoundedCornersView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public RoundedCornersView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
paint = new Paint();
paint.setColor(Color.WHITE);
paint.setAntiAlias(true);
path = new Path();
rectF = new RectF();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int width = getWidth();
int height = getHeight();
// 绘制四个带有圆角的矩形
rectF.set(0, 0, width, height);
path.reset();
path.addRoundRect(rectF, cornerRadius, cornerRadius, Path.Direction.CW);
canvas.drawPath(path, paint);
rectF.set(cornerRadius, cornerRadius, width - cornerRadius, height - cornerRadius);
path.reset();
path.addRect(rectF, Path.Direction.CW);
canvas.drawPath(path, paint);
rectF.set(0, cornerRadius, cornerRadius, height - cornerRadius);
path.reset();
path.addRect(rectF, Path.Direction.CW);
canvas.drawPath(path, paint);
rectF.set(width - cornerRadius, cornerRadius, width, height - cornerRadius);
path.reset();
path.addRect(rectF, Path.Direction.CW);
canvas.drawPath(path, paint);
}
}
要在布局文件中使用该自定义 View,可以添加以下代码:
通过调整 cornerRadius 的值,可以控制圆角的大小。