Android GridView Elemento Selezionato il colore di Sfondo cambia, mentre premendo

Ho l’imageview utilizzando gridview nella mia applicazione android.così, mentre premendo l’immagine nella gridview,il colore di sfondo desidera modificare.in caso di restituzione ,sarà normale colore di sfondo.Come fare questo?qualcuno mi può aiutare a risolvere questo problema?

Qui il mio codice

public class CustomGridViewExample extends Activity {

    private Integer[] mThumbIds = {
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,
            R.drawable.android_2,


            };


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setAdapter(new MyAdapter(this));
        gridview.setNumColumns(4);
    }

  public class MyAdapter extends BaseAdapter {

        private Context mContext;

        public MyAdapter(Context c) {
            mContext = c;
        }

        @Override
        public int getCount() {
            return mThumbIds.length;
        }

        @Override
        public Object getItem(int arg0) {
            return mThumbIds[arg0];
        }

        @Override
        public long getItemId(int arg0) {
            return arg0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) { 

            View grid;

            if(convertView==null){
                grid = new View(mContext);
                LayoutInflater inflater=getLayoutInflater();
                grid=inflater.inflate(R.layout.mygrid_layout, parent, false);
            }else{
                grid = (View)convertView;
            }

            ImageView imageView = (ImageView)grid.findViewById(R.id.image);
            imageView.setImageResource(mThumbIds[position]);

            return grid;
        }

    }

E i relativi file XML è il seguente :

<GridView 
    android:id="@+id/gridview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:numColumns="auto_fit" 
    android:verticalSpacing="10dp" 
    android:horizontalSpacing="10dp" 
    android:stretchMode="columnWidth" 
    android:gravity="center"
    android:scrollbars="none" />

mygrid_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/customshape_header"
    android:orientation="vertical">
    <ImageView 
        android:id="@+id/image" 
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"/>



</RelativeLayout>
InformationsquelleAutor della alwin | 2012-09-05



2 Replies
  1. 3

    nella vostra cartella Drawable creare grid_selector.xml.
    Quindi modificare il seguente:`

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:drawable="@color/green" android:state_pressed="true"/>
        <item android:drawable="@color/blue" android:state_selected="true"/>
        <item android:drawable="@color/white"/>
    
    </selector>`

    Quindi in ur mygrid_layout.xml set di file di questo file come sfondo nel relativo layout ..

  2. 0

    nel mygrid_layout.xml per il relativo layout utilizzare il selettore con ur richiesto il colore di sfondo .

    • xml che devo utilizzare il selettore con sfondo ?main.xml o mygrid_layout.xml

Lascia un commento