2011-07-08 11 views
6

me han widget de la galería, cuando se desplaza ella, la imagen seleccionada actualmente tiene fronteras - selectora sólo simple, como esteGalería setSelection no lo hace incendios imagen selector de

<selector 
xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
    android:state_selected="true" 
    android:drawable="@drawable/thumbnail_frame" /> 
<item 
    android:drawable="@android:color/transparent" /> 

y en getView del adaptador de la galería de su adjunto como esto

image.setBackgroundDrawable(getResources().getDrawable(R.drawable.xxx)); 

el problema es, cuando cambio galería de selección con setSelection(), el elemento seleccionado no tiene una frontera. Pero cuando lo desplazo con el borde de los dedos en el elemento seleccionado, funciona bien. Creo que setSelection() no desencadena setSelected() o algo así.

Supongo que la solución sería llamar a setSelected() junto con setSelection(), pero ¿cómo puedo llamarlo para ImageView actualmente seleccionado? ¿O hay alguna otra forma de hacer esto?

+0

Debería asignar estáticamente el fondo a la vista del adaptador (en el diseño). Puede ser su código que establece que el fondo está sucediendo demasiado tarde para "ver" el estado seleccionado. También he tenido problemas si la vista del adaptador que entra a la galería no es enfocable; es posible que desee agregar estados para eso en su selector también. ¿Has probado tu sugerencia y funcionó? ¡Siempre puede examinar el código fuente de 'Gallery.setSelection()' para referencia! –

+0

solo un comentario a su código, image.setBackgroundResource (R.drawable.xxx) es más simple que image.setBackgroundDrawable (getResources(). GetDrawable (R.drawable.xxx)) – Marmoy

Respuesta

0

Use una ViewPager y setCurrentItem. Ellos trabajan mucho mejor.

+0

Bueno, sí ahora puedo usarlo, pero no estaba disponible en el momento de la publicación. – Sver

Cuestiones relacionadas