android:columnWidth | setColumnWidth(int) | 设置列的宽度 |
android:gravity | setGravity(int) | 设置对齐方式 |
android:horizontalSpacing | setHorizontalSpacing(int) | 设置各元素之间的水平间距 |
android:numColumns | setNumColumns(int) | 设置列数 |
android:verticalSpacing | setVerticalSpacing(int) | 设置各元素之间 的垂直间距 |
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal" > <!-- 定义一个GridView组件 --> <GridView android:id="@+id/grid01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:horizontalSpacing="1pt" android:verticalSpacing="1px" android:numColumns="4" android:gravity="center" /> <!-- 定义一个ImageView组件 --> <ImageView android:id="@+id/image01" android:layout_width="240dp" android:layout_height="240dp" android:layout_gravity="center_horizontal" /> </LinearLayout>
<?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal" android:padding="2pt" > <ImageView android:id="@+id/image1" android:layout_width="50dp" android:layout_height="50dp" /> </LinearLayout>
package com.example.android_gridview; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.GridView; import android.widget.ImageView; import android.widget.SimpleAdapter; public class MainActivity extends Activity { GridView grid; ImageView image; int[] imageIds = new int[] { R.drawable.one, R.drawable.two, R.drawable.three, R.drawable.four, R.drawable.one_one, R.drawable.two_two, R.drawable.three_three, R.drawable.four_four }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //创建一个List对象,List对象的元素是Map List<Map<String,Object>> listItems = new ArrayList<Map<String,Object>>(); for(int i = 0 ; i < imageIds.length; i++){ Map<String,Object> listItem = new HashMap<String,Object>(); listItem.put("image", imageIds[i]); listItems.add(listItem); } //获取显示图片的 ImageView image = (ImageView) findViewById(R.id.image01); grid = (GridView) findViewById(R.id.grid01); //创建一个SimpleAdapter SimpleAdapter simpleAdapter = new SimpleAdapter (this, listItems,R.layout.cell,new String[] {"image"},new int[] {R.id.image1}); //为GridView设置Adapter grid.setAdapter(simpleAdapter); //添加列表项被选中的监听器 grid.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub //显示当前被选中的图片 image.setImageResource(imageIds[position]); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); //添加列表被单击的监听器 grid.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub //显示被单击的图片 image.setImageResource(imageIds[position]); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }