Как на ImageView указать определенные области для нажатия?

Я создаю мобильное приложение в Android studio, где весь экран занимает изображение человека. Пользователь должен нажать, например, на ногу, и ему высветится информация о ноге. Но я столкнулся с проблемой указать на изображении определенные произвольные места, при нажатии на которые будет открываться новая активность. Подскажите, пожалуйста, как это можно реализовать? Всего на изображении будет много произвольных «кнопок». Вот мой пример через координаты, но это ужасно неудобно, может, кто-то знает способ лучше? public class MainActivity extends AppCompatActivity {

private ImageView imageView;

@SuppressLint("ClickableViewAccessibility")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    imageView = findViewById(R.id.imageView);
    imageView.setImageResource(R.drawable.front_man);

    // Определение областей изображения
    Rect handRect = new Rect(100, 100, 200, 200);
    Rect legRect = new Rect(300, 300, 400, 400);

    // Обработка нажатия
    imageView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            float x = event.getX();
            float y = event.getY();

            // Проверка области нажатия
            if (handRect.contains((int) x, (int) y)) {
                // Переход на макет с описанием руки
                Intent intent = new Intent(MainActivity.this, HandActivity.class);
                startActivity(intent);
            } else if (legRect.contains((int) x, (int) y)) {
                // Переход на макет с описанием ноги
                Intent intent = new Intent(MainActivity.this, LegActivity.class);
                startActivity(intent);
            }

            return true;
        }
    });
}

}

пишу код на Java, но вы можете скидывать свои советы и на Kotlin )


Ответы (0 шт):