Cortar las esquinas de un diseño

Tengo un diseño en android que tiene que ser una cierta forma, es decir, esto: Rectángulo con esquinas recortadas

Donde se cortan las esquinas. ¿Hay una manera de hacer esto programáticamente sin fijar el fondo del diseño a la imagen? Estoy buscando para mantener el tamaño de la aplicación tan pequeño como sea posible para minimizar el número de drawables en la aplicación es una necesidad.

import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.drawable.shapes.Shape; public class WeirdShape extends Shape { private static final int COLOUR = Color.BLACK; private static final float STROKE_WIDTH = 1.0f; private static final float CORNER = 35.0f; private final Paint border = new Paint(); private final Path path; public WeirdShape() { path = new Path(); border.setColor (COLOUR); border.setStyle (Paint.Style.FILL); border.setStrokeWidth(STROKE_WIDTH); border.setAntiAlias (true); border.setDither (true); border.setStrokeJoin (Paint.Join.ROUND); border.setStrokeCap (Paint.Cap.ROUND); } @Override protected void onResize(float width, float height) { super.onResize(width, height); float dx = STROKE_WIDTH/2.0f; float dy = STROKE_WIDTH/2.0f; float x = dx; float y = dy; float w = width - dx; float h = height - dy; //RectF arc = new RectF(x,h-2*CORNER,x+2*CORNER,h); path.reset(); path.moveTo(x + CORNER,y); path.lineTo(w - CORNER,y); path.lineTo(w,y + CORNER); path.lineTo(w, h); path.lineTo(x + CORNER,h); // path.arcTo (arc,90.0f,90.0f); path.lineTo(dx,h - CORNER); path.lineTo(dx,y);//path.lineTo(dx,y + CORNER); path.close(); } @Override public void draw(Canvas canvas, Paint paint) { // TODO Auto-generated method stub canvas.drawPath(path,border); } } 

Y luego utilizar la forma personalizada en un ShapeDrawable como el fondo Drawable:

 view.setBackground(new ShapeDrawable(new WeirdShape())); 

Que se parece a algo así:

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.