Android drawSelectorOnTop mit GridView

Ich entwickle eine Anwendung mit Registerkarten, in der eines der Fragmente, CollectionsFragment, eine GridView mit einer ImageView in jedem Slot enthält. Ich möchte einen Selektor verwenden, um Benutzern Feedback zu geben, wenn der Benutzer auf eines der Bilder klickt.

Ich habe den Selektor erfolgreich implementiert, mein Problem ist jedoch, dass der Selektor nur im Hintergrund des Bildes zeichnet, aber ich möchte, dass der Selektor über das gesamte Bild zeichnet. Ich habe dieses Problem an anderer Stelle erwähnt gesehen, aber die von vielen ausgewählte Lösung, die die drawSelectorOnTop-Eigenschaft von GridView festlegt, funktioniert bei mir nicht.

Das relevante Fragment mit dem relevanten Adaptercode:

public class CollectionsFragment extends Fragment {
    @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
             View view = inflater.inflate(R.layout.activity_collections, container, false);
             // Grid view is inside the xml view inflated above
             GridView gridView = (GridView)view.findViewById(R.id.gridview);
             gridView.setDrawSelectorOnTop(true);
             ((GridView) gridView).setAdapter(new CustomGridViewAdapter(getActivity()));
             return view;
        }

        private class CustomGridViewAdapter extends BaseAdapter {
            @Override
            public View getView(int i, View view, ViewGroup viewGroup) {
                View v = view;
                ImageView picture;
                TextView name;

                if(v == null) {
                    v = inflater.inflate(R.layout.collections_item, viewGroup, false);
                    v.setTag(R.id.picture, v.findViewById(R.id.picture));
                    v.setTag(R.id.text, v.findViewById(R.id.text));
                }

                picture = (ImageView)v.getTag(R.id.picture);

                name = (TextView)v.getTag(R.id.text);

                Item item = (Item)getItem(i);
                name.setText(item.name);

                picture.setImageResource(item.drawableId);
                picture.setBackgroundResource(R.drawable.selector);

                return v;
            }
        }
}

Und meine Auswahl der Vollständigkeit halber:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" 
      android:drawable="@color/buttonhighlight"/> <!-- pressed state -->
<item android:state_focused="true" 
      android:drawable="@color/buttonhighlight"/> <!-- focused state -->
<item android:drawable="@android:color/transparent"/> <!-- default state --> 
</selector>

Danke für jede Hilfe,

Antworten auf die Frage(2)

Ihre Antwort auf die Frage