Im not sure what you mean, but I think what you are trying to do is that the user is able to put in shapes or it will automatically create shapes. You can use the link provided hopefully as a starting point for this, you can set up different shapes following the second link :)
https://examples.javacodegeeks.com/android/core/graphics/canvas-graphics/android-canvas-example/
https://developer.android.com/reference/android/graphics/Canvas.html
void drawOval(float left, float top, float right, float bottom, Paint paint)
Or something like this
public static Bitmap getRoundedShape(Bitmap scaleBitmapImage) {
if (scaleBitmapImage == null) {
return null;
}
int sourceWidth = scaleBitmapImage.getWidth();
int sourceHeight = scaleBitmapImage.getHeight();
int targetWidth = Math.min(sourceWidth, sourceHeight);
int targetHeight = targetWidth;
Bitmap targetBitmap = Bitmap.createBitmap(
targetWidth,
targetHeight,
Bitmap.Config.ARGB_8888
);
Canvas canvas = new Canvas(targetBitmap);
Path path = new Path();
path.addCircle(
((float) targetWidth - 1) / 2,
((float) targetHeight - 1) / 2,
Math.min(((float) targetWidth), ((float) targetHeight)) / 2,
Path.Direction.CCW
);
canvas.clipPath(path);
Bitmap sourceBitmap = scaleBitmapImage;
canvas.drawBitmap(
sourceBitmap,
new Rect(0, 0, sourceBitmap.getWidth(),
sourceBitmap.getHeight()),
new Rect(0, 0, targetWidth, targetHeight),
null
);
return targetBitmap;
}
Source: http://www.programcreek.com/java-api-examples/index.php?api=android.graphics.Canvas