Android drawSelectorOnTop z GridView

Zajmuję się tworzeniem aplikacji z kartami, w której jeden z fragmentów, CollectionsFragment, zawiera GridView z ImageView w każdym gnieździe. Chciałbym, aby za pomocą selektora przekazywać użytkownikom informacje zwrotne, gdy użytkownik kliknie jeden z obrazów.

Z powodzeniem zaimplementowałem selektor, jednak moim problemem jest to, że selektor rysuje tylko w tle obrazu, ale chciałbym, aby selektor narysował cały obraz. Widziałem ten problem przywoływany gdzie indziej, jednak rozwiązanie wybrane przez wielu, ustawiające właściwość drawSelectorOnTop GridView, nie działa dla mnie.

Odpowiedni fragment z odpowiednim kodem adaptera:

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;
            }
        }
}

I mój selektor ze względu na kompletność:

<?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>

Dziękuję za pomoc

questionAnswers(2)

yourAnswerToTheQuestion