属性名称

描述

android:columnWidth

设置列的宽度。

android:gravity

设置此组件中的内容在组件中的位置。可选的值有:top、bottom、left、right、center_vertical、 fill_vertical、center_horizontal、fill_horizontal、center、fill、 clip_vertical可以多选,用“|”分开。

android:horizontalSpacing

两列之间的间距。

android:numColumns

设置列数。

android:stretchMode

缩放模式。

android:verticalSpacing

两行之间的间距。

案例一:

1.定义一个布局文件:gridview.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="wrap_content"     android:layout_height="wrap_content">    <GridView        android:id="@+id/gridview_main"        android:layout_width="wrap_content"        android:layout_height="wrap_content"         android:numColumns="auto_fit"        android:verticalSpacing="1dp"        android:horizontalSpacing="1dp"        android:columnWidth="90dp"        android:stretchMode="columnWidth"        android:gravity="center"        >    </GridView></LinearLayout>

android:numColumns="auto_fit"--列数设置为自动;

android:columnWidth="90dp"--每列的列宽,也就是item的宽度

android:verticalSpacing="1dp"--两行之间的边距

android:horizontalSpacing="1dp"--两列之间的边距

android:stretchMode="columnWidth"--缩放与列宽大小同步

2。接下来定义gridview_item.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="wrap_content"     android:layout_height="wrap_content"    android:orientation="vertical"    >    <ImageView        android:id="@+id/gridview_imageview"        android:layout_width="wrap_content"        android:layout_height="wrap_content"      >    </ImageView>    <TextView         android:id="@+id/gridview_textview"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="TextView01"        android:gravity="center"      /></LinearLayout>

3.最后定义Java的源代码了,GridViewDemo.java

package com.test;import java.util.ArrayList;import java.util.HashMap;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.GridView;import android.widget.SimpleAdapter;public class GridViewDemo extends Activity {int [] image={R.drawable.android,R.drawable.blackberry,R.drawable.windowshone,R.drawable.windowshone,R.drawable.blackberry,R.drawable.android,R.drawable.windowshone,R.drawable.ios,R.drawable.blackberry};private GridView gridView;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.gridview_main);gridView = (GridView)findViewById(R.id.gridview_main);//生成动态数组,并且转入数据 ArrayList<HashMap<String, Object>>  list=new ArrayList<HashMap<String,Object>>();for(int i=0;i<9;i++){HashMap<String, Object>  map = new HashMap<String, Object>();   map.put("ItemImage", image[i]);//添加图像资源的ID     map.put("itemtext","Amigos_pop-"+String.valueOf(i));   list.add(map);} //生成适配器的ImageItem <====> 动态数组的元素,两者一一对应  SimpleAdapter   adapter=new SimpleAdapter(this, //数据来源 list,R.layout.gridview_item,//XML实现  new String[]{"ItemImage","itemtext"}, //动态数组与ImageItem对应的子项          new int[]{R.id.gridview_imageview,R.id.gridview_textview}//  //ImageItem的XML文件里面的一个ImageView,两个TextView ID         ); //添加并且显示  gridView.setAdapter(adapter);//添加消息处理gridView.setOnItemClickListener(clickListener);}  //当AdapterView被单击(触摸屏或者键盘),则返回的Item单击事件  private  OnItemClickListener  clickListener=new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0,//The AdapterView where the click happened                   View arg1,//The view within the AdapterView that was clicked                  int arg2,//The position of the view in the adapter                  long arg3//The row id of the item that was clicked  ) {HashMap<String, Object>  item=(HashMap<String, Object>)arg0.getItemAtPosition(arg2);setTitle((String)item.get("itemtext"));}};}

4:执行效果:

===============================================================================

案例二:同样的效果:

布局文件使用上面一样的:

定义一个ImageAdapter类,此类继承BaseAdapter如下:

package com.test;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;public class GridViewAdapter extends BaseAdapter {//定义Contextprivate Context  mContext;//定义整形数组 (图片资源)private  int []  mimages={ R.drawable.android,R.drawable.blackberry,R.drawable.windowshone, R.drawable.windowshone,R.drawable.blackberry,R.drawable.android, R.drawable.windowshone,R.drawable.ios,R.drawable.blackberry};public GridViewAdapter(Context  c) {mContext=c;}//获取图片的个数@Overridepublic int getCount() {// TODO Auto-generated method stubreturn mimages.length;}   // 获取图片在库中的位置@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}  //获取图片ID@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {       ImageView mimageView;       if(convertView==null)       {       //给Imageview设置资源       mimageView = new ImageView(mContext);       //设置布局图片120*120显示          mimageView.setLayoutParams(new GridView.LayoutParams(85, 85));              mimageView.setScaleType(ImageView.ScaleType.CENTER_CROP);              mimageView.setPadding(8, 8, 8, 8);       }else       {       mimageView=(ImageView) convertView;        }       mimageView.setImageResource(mimages[position]);   return mimageView;}}

package com.test;import java.util.ArrayList;import java.util.HashMap;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.GridView;import android.widget.SimpleAdapter;import android.widget.Toast;public class GridViewDemo_2 extends Activity {private GridView  gridView;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.gridview_main);gridView = (GridView)findViewById(R.id.gridview_main);gridView.setAdapter(new GridViewAdapter(this));//调用GridViewAdaptergridView.setOnItemClickListener(clickListener);}private  OnItemClickListener  clickListener =new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int position,long id) {Toast.makeText(GridViewDemo_2.this, ""+position,Toast.LENGTH_SHORT).show();//显示信息; }};}

效果:

更多相关文章

  1. 在android的Browser中设置User Agent
  2. 3.EditText控件
  3. Android系列教程之四:Android项目的目录结构
  4. Android:EditText学习总结
  5. Android(安卓)-- java代码设置margin
  6. android Makefile
  7. Android(安卓)ListView控件基本用法
  8. Activity背景色为透明的2种方法
  9. layout布局属性

随机推荐

  1. Android 保存 JNI 层 opencv cvMat 图片
  2. XML中的命名空间问题
  3. Android内核编译
  4. Android图形系统分析与移植 -- 四、Surfa
  5. Android:shape的使用详解(2)
  6. Android AES加密算法,现在实际上
  7. android 触屏反馈原理
  8. android, shape用法和讲解
  9. Android开发常用属性
  10. Android在代码中设置drawableLeft(Right/