GridView con selección múltiple no muestra el estado del elemento seleccionado (sólo estado presionado)

Tengo un GridView que tiene un ChoiceMode de GridView.CHOICE_MODE_MULTIPLE_MODAL . Me gustaría que la selección se comportara de manera similar a lo que se vería en la aplicación de la Galería (es decir, presionar largo sobre un elemento, el elemento seleccionado tiene un color de primer plano semitransparente para indicar que está seleccionado, presionar brevemente en otros elementos agrega o los elimina de la selección).

He creado un selector de estado así:

 <selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="@android:integer/config_mediumAnimTime"> <item android:drawable="@drawable/pressed_background" android:state_activated="true"/> <item android:drawable="@drawable/pressed_background" android:state_checked="true"/> <item android:drawable="@drawable/pressed_background" android:state_selected="true"/> <item android:drawable="@drawable/pressed_background" android:state_pressed="true"/> </selector> 

Aquí está el archivo pressed_background.xml :

 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/pressed" /> </shape> 

Y el color al que se refiere:

 <color name="pressed">#CC30d3dc</color> 

Lo estoy aplicando a mi cuadrícula así:

 <GridView android:id="@+id/grid" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/header" android:layout_marginTop="8dp" android:columnWidth="112dp" android:divider="@null" android:dividerHeight="0dp" android:drawSelectorOnTop="true" android:listSelector="@drawable/selectable_background" android:numColumns="auto_fit" android:stretchMode="columnWidth" /> 

Y aquí está el XML para el elemento de la cuadrícula:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" > <ImageView android:id="@+id/photo" android:layout_width="@dimen/add_photos_image_size" android:layout_height="@dimen/add_photos_image_size" android:layout_centerInParent="true" /> </RelativeLayout> 

El problema es que el estado seleccionado nunca aparece en el elemento de cuadrícula. Cuando empiezo a presionar mucho, el color del estado presionado aparece como se esperaba en la parte superior del elemento de la cuadrícula, pero tan pronto como se selecciona, el color desaparece y no hay indicación de que el elemento está en un estado seleccionado. La barra de acción contextual aparece como se esperaba. He intentado tantas variaciones diferentes del <selector> y el fondo de elementos de la cuadrícula como pude pensar.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.