与路径圆顶角
问题描述:
我想剪辑在Java中画布的左上角和右上角。我知道你可以在所有角落都使用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);
}
答
你可以破解它。只需设置RectF较大的尽可能多的像素作为圆角这样的半径:
RectF rect = new RectF(0, 0, this.getWidth(), this.getHeight() + 12.0f); // draw a larger rect
我猜你将不得不设置油漆颜色完全透明(0x00fffffff)。
答
您可以使用另一种方法重载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);
我通过上面的代码解决了这个问题。
可能的重复[如何使用Android画布绘制矩形只有顶部和顶部的圆角?](http://*.com/questions/5896234/how-to-use-android-canvas-to-抽取一个矩形与 - 仅-左上和 - topright-COR) – 2017-05-22 10:54:08