剪切 XML 形状的一部分

2023-12-25

我有一个 XML 格式的矩形视图:

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle"> 

        <solid android:color="@color/lightblue"/> 
    </shape>

What I want is cut it in half, so result will looks like: enter image description here

是否可以?如果是,我该如何实现?

Note:

1)添加旋转的白色矩形不是解决方案。我需要保持蓝色形状的切割区域透明(它下面有更多的视图层)。

2)矩形的左下角有点圆(我忘了在上图中画它)。


use a ShapeDrawable像这样:

Drawable d = new ShapeDrawable(new S(Color.BLUE, 32));

哪里上课S是一种习俗Shape:

class S extends Shape {
    final int color;
    final float radius;
    Path path = new Path();

    public S(int color, float radius) {
        this.color = color;
        this.radius = radius;
    }

    @Override
    protected void onResize(float width, float height) {
        path.reset();
        path.moveTo(0, 0);
        path.lineTo(width, height);
        path.lineTo(radius, height);
        RectF oval = new RectF(0, height - 2 * radius, 2 * radius, height);
        path.arcTo(oval, 90, 90);
        path.close();
    }

    @Override
    public void draw(Canvas canvas, Paint paint) {
        paint.setColor(color);
        canvas.drawPath(path, paint);
    }
}

现在你可以使用Drawable d在任何电话中View#setBackground(), TextView#setCompoundDrawables() etc

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

剪切 XML 形状的一部分 的相关文章

随机推荐