android使用xml创建弧形矩形

android使用xml创建弧形矩形,android,image,Android,Image,我试着用xml创建这样的矩形,有形状,但运气不好,这是可能的还是如何透明这个图像,我的意思是它的颜色要透明,就像我们用alpha定义任何形状的颜色一样,然后我们得到透明度,有没有办法做到这一点 谢谢 我可以通过使剪裁区域(在我的例子中是一个圆)的颜色与背景颜色相同来实现这一点。 float[]outerR=新的float[]{12,12,12,12,0,0,0,0} float[]circleR=新的float[]{50,50,50,50,50,50} mDrawables = new Shap

我试着用xml创建这样的矩形,有形状,但运气不好,这是可能的还是如何透明这个图像,我的意思是它的颜色要透明,就像我们用alpha定义任何形状的颜色一样,然后我们得到透明度,有没有办法做到这一点

谢谢


我可以通过使剪裁区域(在我的例子中是一个圆)的颜色与背景颜色相同来实现这一点。


float[]outerR=新的float[]{12,12,12,12,0,0,0,0}
float[]circleR=新的float[]{50,50,50,50,50,50}

mDrawables = new ShapeDrawable[2];
mDrawables[0] = new ShapeDrawable(new RoundRectShape(outerR, null,
                null));
mDrawables[1] = new ShapeDrawable(new RoundRectShape(circleR, null,
                null));
mDrawables[0].getPaint().setColor(0xFF0000FF);
mDrawables[1].getPaint().setColor(Color.GRAY);


在onDraw中:

protected void onDraw(Canvas canvas) {
    canvas.drawColor(Color.GRAY);
    int x = 10;<br>
    int y = 10;<br>
    int width = 100;<br>
    int height = 100;

    for (int i = 0; i < mDrawables.length; i++) {
    Drawable dr = mDrawables[i];
    if (i == 0) {
            dr.setBounds(x, y, x + width, y + height);
            dr.draw(canvas);
        } else {
            x = 10 + 75;
            y = 10 + 75;
            dr.setBounds(x, y, x + 50, y + 50);
            dr.draw(canvas);
        }
    }
    canvas.save();
}
受保护的void onDraw(画布){
画布。drawColor(颜色。灰色);
int x=10;
int y=10;
整数宽度=100;
整数高度=100; for(int i=0;i