標籤:風飛雪未揚 從零開始學android gridview組建的使用
GridView組件是以網格的形式顯示所有的組件,例如:在製作相簿的時候,所有的圖片都會以相同大小顯示在不同的格子之中,就可以依靠此組件完成,此組件的繼承結構如下所示:java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.AdapterView<T extends android.widget.Adapter> ? 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檔案
<span style="font-size:18px;"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <GridView android:id="@+id/gridview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:stretchMode="columnWidth" android:numColumns="4" /></RelativeLayout></span>
JAVA檔案
<span style="font-size:18px;">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;}}}</span>
效果
通過GridView組件可以實現多彩菜單效果
下節預報:TabHost標籤組件
從零開始學android<GridView網格視圖.二十八.>