カスタム ドローアブルまたはビューで onDraw をオーバーライドして、自分で色付きの領域を描画できます。
たとえば、このコードでは、4 つの「コーナー アウトライン」を描画します。
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
drawCorner(cornerSizeInPixel, canvas, Color.GREEN));
}
private void drawCorner(int size, Canvas canvas, int color)
{
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(color);
paint.setStyle(Style.FILL);
// top left
Path p = new Path();
p.moveTo(0, 0);
p.lineTo(size, 0);
p.arcTo(new RectF(0, 0, size, size), 180, 90, true);
p.lineTo(0, 0);
canvas.drawPath(p, paint);
// bottom left
int h = canvas.getHeight();
p = new Path();
p.moveTo(0, h);
p.lineTo(size, h);
p.arcTo(new RectF(0, h - size, size, h), 90, 90, true);
p.lineTo(0, h);
canvas.drawPath(p, paint);
// top right
int w = canvas.getWidth();
p = new Path();
p.moveTo(w, 0);
p.lineTo(w - size, 0);
p.arcTo(new RectF(w - size, 0, w, size), 270, 90, true);
p.lineTo(w, 0);
canvas.drawPath(p, paint);
// bottom right
p = new Path();
p.moveTo(w, h);
p.lineTo(w - size, h);
p.arcTo(new RectF(w - size, h - size, w, h), 0, 90, true);
p.lineTo(w, h);
canvas.drawPath(p, paint);
}
結果: 画像の隅々に 4 つの緑色のフォームがあり、これらが合わさって丸みを帯びた四角形が本当に透明になります。