從零開始學android(GridView網格視圖.二十八.)
GridView組件是以網格的形式顯示所有的組件,例如:在製作相簿的時候,所有的圖片都會以相同大小顯示在不同的格子之中,就可以依靠此組件完成,此組件的繼承結構如下所示:java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.AdapterView ? android.widget.AbsListView ? android.widget.GridView常用的方法
1 |
public GridView(Context context) |
構造 |
|
建立GridView對象 |
2 |
public void setStretchMode(int stretchMode) |
普通 |
android:stretchMode |
縮放模式 |
3 |
public void setVerticalSpacing(int verticalSpacing) |
普通 |
android:verticalSpacing |
設定垂直間距 |
4 |
public void setHorizontalSpacing(int horizontalSpacing) |
普通 |
android:horizontalSpacing |
設定水平間距 |
5 |
public void setNumColumns(int numColumns) |
普通 |
android:numColumns |
設定每列顯示的資料量,如果設定為auto_fit則表示自動化佈建 |
6 |
public void setSelection(int position) |
普通 |
|
設定預設選中項 |
7 |
public void setGravity(int gravity) |
普通 |
android:gravity |
設定對齊模式,由Gravity類指定 |
8 |
public void setAdapter(ListAdapter adapter) |
普通 |
|
設定顯示圖片集 |
當然要想使用GridView還是必須要使用到Adapter資料集類配置圖片資料
大家可以使用SimpleAdapter 和BaseAdapter來配置adapter今天我使用BaseAdapter來配置Adapter資料
XML檔案
JAVA檔案
package com.example.gridview;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;public class MainActivity extends Activity {private GridView gridView;// 初始化GridViewprivate int images[] = { R.drawable.a1, R.drawable.a2, R.drawable.a3,R.drawable.a4, R.drawable.a5, R.drawable.a6, R.drawable.a7,R.drawable.a8, R.drawable.a9, R.drawable.a10, R.drawable.a11,R.drawable.a12, R.drawable.a13, R.drawable.a14, R.drawable.a15,R.drawable.a16 };// 圖片資料@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 獲得GridView對象gridView = (GridView) this.findViewById(R.id.gridview);// 設定AdptergridView.setAdapter(new MyAdapter());// 設定監聽事件gridView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView adapterView, View view,int position, long id) {// TODO Auto-generated method stub// 為dialog設定view空間ImageView image = new ImageView(MainActivity.this);// 設定圖片資訊image.setImageResource(images[position]);// 設定圖片的額對齊image.setScaleType(ImageView.ScaleType.CENTER);// 設定圖片的大小image.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));//建立對話方塊AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this).setTitle("查看圖片").setView(image).setIcon(android.R.drawable.btn_star_big_on).setNegativeButton("關閉", new OnClickListener() {@Overridepublic void onClick(DialogInterface arg0, int arg1) {// TODO Auto-generated method stub}});//建立對話方塊builder.create();//顯示對話方塊builder.show();}});}class MyAdapter extends BaseAdapter {@Overridepublic int getCount() {// TODO Auto-generated method stubreturn images.length;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View myView, ViewGroup parent) {// TODO Auto-generated method stub//返回imageView對象ImageView imageView = new ImageView(MainActivity.this);imageView.setImageResource(images[position]);imageView.setScaleType(ImageView.ScaleType.CENTER);return imageView;}}}
效果
通過GridView組件可以實現多彩菜單效果
下節預報:TabHost標籤組件