Исходя из вашего кода, как предложил jaydeepfifadra, вы можете использовать метод setOnItemClickListener вида gride, а не само изображение. (Не сказать, что это невозможно, но я не пробовал).
gridView.setOnItemClickListener(
new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View view, int arg2, long arg3) {
((Image)view.setSelected(!(Image)view.getSelected()));
}
});
);
Теперь я не уверен на 100%, будет ли работать следующее, но в приведенном выше примере я установил состояние view.setSelected () изображения для переключения. Я отчасти догадываюсь, что вы можете установить ресурс изображения для рисования селектора. т.е.
сделайте ваши селекторы ресурсов R.drawable.sample_2, например:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@drawable/image_selected" />
<item android:drawable="@drawable/image_unselected" />
</selector>
Тем не менее, хотя это позволяет вам обнаружить одиночное нажатие, которое будет переключать выбранное состояние. Это не распространяется на двойной кран. Также не существует метода setOnDoubleClickItemListener ().
Таким образом, для вашей конкретной ситуации может потребоваться реализовать GestureDetector и реализовать собственный класс SimpleOnGestureListener (MyGestureListener расширяет SimpleOnGestureListener), который управляет событиями двойного и одиночного касания, которые вы ищете.
Пример реализации слушателя и детектора жестов можно посмотреть здесь.
как реализовать как касание, так и включение в одном и том же списке?
Вы должны установить gestListener как onTouchListener вашего вида сетки.