Я не совсем уверен в этом, но я думаю, что эта схема будет работать. Создайте представление изображения в макете, чтобы отобразить изображение и сделать его интерактивным с помощью onTouchEvent. Таким образом вы можете получить координаты щелчка. Убедитесь, что щелчок находится внутри внутреннего и внешнего радиусов, и если да, сделайте данный ответ.
Вот несколько расчетов, которые будут нуждаться:
центр окружности -Assuming центр находится в самом низу изображения, это будет выглядеть примерно так (не обязательно точные методы)
centerX = img.getX() + img.getWidth()/2;
centerY = img.getY() + img.getHeight()/2;
Помните, что координаты экрана идут сверху вниз и слева направо.
Найти расстояние от центра, где щелчок произошел
Dx = click.getX() - centerX;
Dy = click.getY() - centerY;
D = Math.sqrt(Dx^2 + Dy^2);
Тогда все, что вам нужно, это проверить, если расстояние находится в пределах радиуса (не знаю, как получить точный радиус здесь, может просто нужно угадать и проверить. альтернатива может быть то, что в верхней части полукруга находится в верхней части изображения, а затем максимальная высоту с быть внешним радиусом.)
if(D<=outerR && D>=innerR)
respond();
Может ли такая синяя область быть цветной? или это будет образ? просто подумать о лучшем подходе. – Suji