GridView組件的使用

GridView組件的使用

            手機應用程序列表、九宮格等就可以使用該組件

1.在layout佈局文件中(總體佈局)創建兩個組件GridView:負責展示圖片 ImageView:負責顯示圖片

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >


    <GridView
        android:id="@+id/imagelist"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:horizontalSpacing="20dp"
        android:numColumns="3"
        android:verticalSpacing="10dp" >
    </GridView>


    <ImageView
        android:id="@+id/imageshow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        />
</LinearLayout>

2.在layout佈局文件(微觀佈局)中創建grid.xml文件:進行每個小格子的佈局。拷貝6張圖片到drawable下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/smallImage"
        android:layout_width="80dp"
        android:layout_height="50dp"/>
</LinearLayout>

3.在控制器Activity中進行綁定和處理

public class MainActivity extends Activity {
	private GridView smallImageGrid;
	private ImageView showImage;
	private int[] pics;//存放圖片id的數組

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //查找組件
        smallImageGrid=(GridView) this.findViewById(R.id.imagelist);
        showImage=(ImageView) this.findViewById(R.id.imageshow);
        //第一步 實例化圖片ID的數組
        pics=new int[]{R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e,R.drawable.f};
        //第二步 創建一個List<Map>集合,用於將圖片ID轉換爲List集合
        List<Map<String,Object>> pic_items=new ArrayList<Map<String,Object>>();
        for(int pic_id:pics){
        	 Map<String, Object> item=new HashMap<String, Object>();
        	 item.put("pic", pic_id);
        	 pic_items.add(item);
        }
        //第三步 創建SimpleAdaper適配器,以備與GridView組件進行綁定
        SimpleAdapter adapter=new SimpleAdapter(this,pic_items,R.layout.grid,new String[]{"pic"},new int[]{R.id.smallImage});
        //第四步  GridView組件與adapter適配器進行綁定
        smallImageGrid.setAdapter(adapter);
        //第五步 爲showImage組件設置默認圖片
        showImage.setImageResource(pics[0]);
        //第六步 註冊事件監聽
        smallImageGrid.setOnItemClickListener(new GridViewHandler());
    }
    
    
    public class GridViewHandler implements OnItemClickListener{

    	/**
    	 * AdapterView adpaterview:發生點擊事件的AdapterView;
    	 * View view:AdapterView中被用戶點擊的Item(GridView中的Item);
    	 * int positon:被點擊的Item在Adapter中的位置
    	 * long id:被點擊的Item的Id
    	 */

		@Override
		public void onItemClick(AdapterView<?> adapter, View view, int position,
				long id) {
			showImage.setImageResource(pics[position]);
		}
    	
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    } 
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章