Если вы загляните в API для Button , вы увидите, что у него есть метод setOnClickListener, унаследованный от View.Поскольку ImageButton также является представлением, вы также можете вызвать для него тот же метод.
Единственный способ использования изображения в кнопке - это использование android: background в XML.Это используется только для установки того, что показано за текстом кнопки.Вам следует использовать ImageButton, когда вы хотите создать кнопку, которая использует изображение только в качестве определяющей функции.Если вы в конечном итоге хотите видеть только изображение и не видите части фона кнопки, вы можете установить на кнопке android: background использование невидимого Drawable.