Android之Gridview图片列表

来源:互联网 发布:mac os 10.7软件 编辑:程序博客网 时间:2024/05/21 09:07

gridview是一项显示二维的viewgroup,可滚动的网格。网格项时自动插入的布局使用listadapter。
1.创建一个新的项目:gridview.

2,打开 res/layout/main.xml文件,插入一下代码:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     > 
  7. <GridView 
  8.          android:id="@+id/gridview" 
  9.          android:layout_width="fill_parent" 
  10.          android:layout_height="fill_parent" 
  11.          android:columnWidth="90dp" 
  12.          android:numColumns="auto_fit" 
  13.          android:verticalSpacing="10dp" 
  14.          android:horizontalSpacing="10dp" 
  15.          android:stretchMode="columnWidth" 
  16.          android:gravity="center" 
  17.          />   
  18. </LinearLayout> 

做好以后就可以在屏幕上显示一个grid view

3.打开gridview.java首先要导入包:

  1. package cn.gridview;  
  2. import android.widget.GridView;  
  3. import android.widget.Toast;  
  4. import android.app.Activity;  
  5. import android.os.Bundle;  
  6. import android.widget.AdapterView.OnItemClickListener;  
  7. import android.widget.AdapterView;  
  8. import android.view.View;  
  9. 在onCreate添加方法:  
  10.  public void onCreate(Bundle savedInstanceState) {  
  11.         super.onCreate(savedInstanceState);  
  12.         setContentView(R.layout.main);  
  13.         GridView gridview=(GridView)findViewById(R.id.gridview);//找到main.xml中定义gridview 的id  
  14.         gridview.setAdapter(new ImageAdapter(this));//调用ImageAdapter.java  
  15.         gridview.setOnItemClickListener(new OnItemClickListener(){//监听事件  
  16.          public void onItemClick(AdapterView<?> parent, View view, int position, long id)   
  17.          {  
  18.           Toast.makeText(gridview.this, ""+position,Toast.LENGTH_SHORT).show();//显示信息;  
  19.          }  
  20.         });  
  21.     }  
  22. ImageAdapter.java  
  23. package cn.gridview;  
  24. import android.view.View;  
  25. import android.view.ViewGroup;  
  26. import android.widget.BaseAdapter;  
  27. import android.content.Context;  
  28. import android.widget.ImageView;  
  29. import android.widget.GridView;  
  30. public class ImageAdapter extends BaseAdapter {  
  31.  private Context mContext;  
  32.    
  33.  public ImageAdapter(Context c)  
  34.  {  
  35.   mContext=c;  
  36.  }  
  37.  @Override  
  38.  public int getCount() {  
  39.   // TODO Auto-generated method stub  
  40.   return mThumbIds.length;  
  41.  }  
  42. @Override  
  43.  public Object getItem(int position) {  
  44.   // TODO Auto-generated method stub  
  45.   return null;  
  46.  }  
  47. @Override  
  48.  public long getItemId(int position) {  
  49.   // TODO Auto-generated method stub  
  50.   return 0;  
  51.  }  
  52.  @Override  
  53.  public View getView(int position, View convertView, ViewGroup parent) {  
  54.   // TODO Auto-generated method stub  
  55.     
  56.   ImageView imageview;  
  57.   if(convertView==null)  
  58.   {  
  59.    imageview=new ImageView(mContext);  
  60.    imageview.setLayoutParams(new GridView.LayoutParams(85, 85));  
  61.    imageview.setScaleType(ImageView.ScaleType.CENTER_CROP);  
  62.    imageview.setPadding(8,8,8,8);  
  63.  }  
  64.   else  
  65.   {  
  66.    imageview=(ImageView) convertView;  
  67.   }  
  68.   imageview.setImageResource(mThumbIds[position]);  
  69.   return imageview;  
  70.   }  
  71. private Integer[] mThumbIds={//显示的图片数组   
  72.   R.drawable.sample_2,R.drawable.sample_3,  
  73.   R.drawable.sample_4,R.drawable.sample_5,  
  74.   R.drawable.sample_6,R.drawable.sample_7,  
  75.   R.drawable.sample_0,R.drawable.sample_1,  
  76.   R.drawable.sample_2,R.drawable.sample_3,  
  77.   R.drawable.sample_4,R.drawable.sample_5,  
  78.   R.drawable.sample_6,R.drawable.sample_7,  
  79.   R.drawable.sample_0,R.drawable.sample_1,  
  80.   R.drawable.sample_2,R.drawable.sample_3,  
  81.   R.drawable.sample_4,R.drawable.sample_5,  
  82.   R.drawable.sample_6,R.drawable.sample_7,  
  83.  };