Хотите вы того или нет, но любой
View рисуется на
Canvas, который однозначно имеет прямоугольную форму. Для вашей задачи подходит только кастомный View, в методе
onDraw которого вы рисуете круглую кнопку, а в методе
onKeyDown вы вычисляете координаты и решаете должно обрабатываться событие или нет, инициируя дополнительно
performClick для вызова обработчиков подписчиков.