Android中的GridView
GridView网格视图
这个控件可以通过网格的形式来显示数据(文本、图像),且它的排列方式类似于矩阵,要采用行列的方式来布局子控件
EG:
第一步:先建立一个布局文件(gridview_layout.xml)并采用线性布局,并嵌入GridView控件
第二步:在新建一个gridview_item.xml布局文件,采用线性布局,增加TextView和ImageView控件
第三步:新建类MyActivity()邴继承Activity,并自定义一个适配器(MyCarAdapter)
gridview_layout.xml的布局代码里面只写一个控件,那就是:
<GridView
android:id="@+id/gridview"
android:Layout_width="fill_parent"
android:Layout_height="Wrap_content"
android:numColums="3"
android:verticalSpacing="5dip"
/>
gridview_item.xml的代码:在里面只写一个TextView控件和一个ImamgeView控件
<TextView
android:id="@+id/textview"
android:Layout_width="fill_parent"
android:Layout_height="Wrap_content"
android:gravity="center"
android:text=""(这句话也可以不写)
/>
<ImageView
android:id="@+id/imageview"
android:Layout_width="fill_parent"
android:Layout_height="Wrap_content"
android:margin="20dip"
/>
MyActivity()的代码如下:
/**
*演示GridView的使用
*
* @author Catherine
*
**/
//声明一个GridView视图
private GridView mGridView;
//然后再进入重写的方法onCreate()中
//实例化mGridView;
mGridView=(GirdView)findViewById(R.id.gridview);
//设置标题·
setTitle("GridView的使用');
//调用方法
bindAdapter();
//创建一个方法,为了去绑定Adapter
private void bindAdapter(){
MyAdapter myadapter=new MyAdapter();
mGridView.setAdapter(myadapter);
}
//自定义一个Adapter,可以灵活的控制Gridview布局显示
Class MyAdapter extend BaseAdapter{
//图片的索引id
int[] imgs={R.drawable.car1,R.drawable.car2,R.drawable.car3
R.drawable.car4,R.drawable.car5,R.drawable.car6
R.drawable.car7,R.drawable.car8,R.drawable.car9};
}
//定义一个字符串来初始化车名字
String [] carNames{"本田","雷克萨斯","兰博基尼","法拉利","宝马","奥迪","丰田","保时捷","奔驰" };
//构造方法(可以不用写)
public MyAdapter(){}
}
//获取条目的数量(重写一个方法(getcount()))
@Override
public int getCount(){
return imgs.length;
}
//返回子控件的内容
@Override
public Object getItem(int position)
{
return imgs[position];
}
@Override
public Object getItemId(int position)
{
return position;
}
//重新加载View的方法
@Overvide
public View getView(int position,View convertView,ViewGroup parent)
{
ImageView imageview=null;
if(convertView==null){
//通过LayoutInflater类来加载布局,返回一个View的实例对象
convertView=LayoutInflater.from(MyActivity.this).inflate(R.layout.gridview_item,null);
}
//通过convetView调用其findviewById方法根据其id返回相应的控件
imageview=(ImageView)findviewById(R.id.imageview);
TextView .setImageResource(imgs[position]);
TextView textview=(TextView)convertView.findviewById(R.id.textview);
textview.setText(carNames[position]);
return convertView;
}