2012-06-17 4 views
5

Я хочу увеличить область действия кнопки мыши (ImageView). Но я не хочу, чтобы это отражалось визуально. Он должен выглядеть так, как кнопка маленькая (без полей, отступов и т. Д.), Но зона с кликами большая.Увеличьте прозрачную накладку, чтобы увеличить зону смены, без изменения макета.

enter image description here

Единственное, что я могу думать о том, все мое расположение в RelativeLayout и добавить наложений программно второго «слоя». Вычислите маржу слева и поле вверх с помощью математики.

Есть ли лучший подход?

Я уже смотрел здесь Expand clickable area of an ImageView by using padding?

или здесь Making a button easier to click

и некоторые другие, но они всегда изменить расположение добавляя отступы или прозрачные области в изображении, я не хочу, чтобы сделать это.

ответ

4

Используйте TouchDelegate, как указано в этих блогах:

Суть в том, что вы можете определить TouchDelegate объект и присоединить его к виджет для увеличения его сенсорной области, без визуального воздействия.

+1

Это почти, но не совсем то, что я ищу. Разница в том, что область ограничена границами родительского представления, и я ищу что-то, что не ограничивается этим. Но я буду использовать это, его легко реализовать и улучшит «осязаемость» моих взглядов достаточно хорошо. Я предполагаю, что в противном случае я должен реализовать его программно, и в этом случае это не стоит. – Ixx

+0

@CommonsWare Эта вторая ссылка недействительна. –

Смежные вопросы