Android установил овальную кнопку, на которую можно нажимать только на изображение

Я пытаюсь найти способ установить интерактивные области на овальной кнопке. Как вы можете видеть на изображении, прикрепленном ниже, Android помещает изображения/фоны кнопок в квадрат, и если я хочу овальную кнопку и нажимаю на квадрат, где фон прозрачен, я все еще нажимаю синюю кнопку, а не зеленую. . Мне нужно иметь возможность установить этот квадрат как овал, может быть ... или даже какую-то другую форму, чтобы я мог использовать onClickListener только при нажатии на изображение.

Надеюсь правильно объяснил! Кто-нибудь, у кого есть идея, как этого добиться?

введите здесь описание изображения


person Android-Droid    schedule 03.05.2012    source источник
comment
Используйте RelativeLayout, чтобы поместить прозрачную круглую фигуру над областью, которую вы хотите щелкнуть, и обрабатывать события этой фигуры.   -  person superM    schedule 03.05.2012
comment
Да, но у меня все еще есть этот квадрат, который я хочу удалить, поэтому я могу щелкнуть только по овальному изображению.   -  person Android-Droid    schedule 03.05.2012
comment
Почему ты вообще не убираешь кнопку? Если вы используете форму круга для события щелчка, вам не нужна кнопка.   -  person superM    schedule 03.05.2012
comment
На самом деле мне нужно, чтобы изображение было там. Я пытался установить его как фон относительного макета, но ситуация та же.   -  person Android-Droid    schedule 03.05.2012
comment
Установите изображение в ImageView и накройте его прозрачной формой. Затем установите слушателя для формы.   -  person superM    schedule 03.05.2012
comment
Я бы порекомендовал этот метод: создайте кликабельное изображение карты, где каждая страна выполняет свое действие.   -  person MosabJ    schedule 17.04.2016


Ответы (3)


Я бы сделал это следующим образом: создаю собственное представление; в onTouch проверьте, находятся ли координаты в нужном вам регионе, и если это так, вызовите onClickListener

person ligi    schedule 03.05.2012

Я думаю, вам нужно поместить android:background="@null" в свой тег ImageView... Или обрезать это изображение до овальной формы, а затем поместить его в Resource..

person Pradeep    schedule 03.05.2012

Я думаю, если фон вашей овальной кнопки прозрачен.

Он может достичь.

person Changwei Yao    schedule 03.05.2012