2012-09-05 106 views
1

我有我的android应用程序中使用gridview的图像视图,而在gridview按下图像,背景颜色想改变。如果我返回,它会来到正常的背景颜色。如何做到这一点?任何人都可以帮我解决这个问题吗?Android GridView选择的项目背景颜色变化,同时按

这里我的代码

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

    } 

和相关的XML文件如下:

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

回答

0
在mygrid_layout.xml相对布局使用选择与乌尔需要的颜色作为背景

+0

这XML应该我用的背景?main.xml中或mygrid_layout选择。 XML –

2

在您的Drawable文件夹中创建grid_selector.xml。 然后编辑如下::`

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

然后在设置该文件中相对布局背景乌尔mygrid_layout.xml文件..