java - 带路径的圆顶角

标签 java android clipping

我正在尝试用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/

相关文章:

iOS UIImageView 剪辑/蒙版图像

java - 动态合并背景

java - spring父上下文和子上下文有什么区别?

java - 如何从android发布表单数据?

android - 恢复(前台启动) Activity 而不更新 ImageIcons

javascript - paperjs:剪辑两条路径

java - LibGDX 剪刀不起作用

Java Swing : dynamic add jpanels not visible

java - 为什么有线程安全收集的要求?

android - 我该如何解决错误 : java. lang.OutOfMemoryError : GC overhead limit exceeded?