我正在尝试用java裁剪Canvas的左上角和右上角。我知道您可以对所有角使用 addRoundRect
,但我不确定如何仅对顶角执行操作。
这是我目前拥有的:
@Override
protected void onDraw(Canvas canvas) {
float radius = 12f;
Path clipPath = new Path();
RectF rect = new RectF(0, 0, this.getWidth(), this.getHeight());
//uh...
//clipPath.addRoundRect(rect, radius, radius, Path.Direction.CW);
canvas.clipPath(clipPath);
super.onDraw(canvas);
}
最佳答案
您可以使用另一种重载方法 addRoundRect(),如下所示:
int width = view.getWidth();
int height = view.getHeight();
float[] radii = {0, 0, 0, 0, 0, 0, 0, 0};
if( mRadiusTop ) {
radii[0] = mRadius;
radii[1] = mRadius;
radii[2] = mRadius;
radii[3] = mRadius;
}
if( mRadiusBottom ) {
radii[4] = mRadius;
radii[5] = mRadius;
radii[6] = mRadius;
radii[7] = mRadius;
}
clipPath.addRoundRect(new RectF(0, 0, width, height), radii, Path.Direction.CW);
canvas.clipPath(clipPath);
我通过上面的代码解决了这个问题。
关于java - 带路径的圆顶角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15670438/