Android gridview实现简单的九宫格布局

来源:互联网 发布:sql批量insert 编辑:程序博客网 时间:2024/05/16 05:48

 

        今天要写一个简单的九宫格布局,通过gridview控件来实现多行网格布局,这里我就不针对控件多做解释了,



简单的实现了图片的排布方式,把每张图片都放入了map中去后添加map到list中去,

public void init()
{
_gridView1 = (GridView)findViewById(R.id.MainActivityGrid);
ArrayList<HashMap<String,Object>> lst = new ArrayList<HashMap<String,Object>>();
for(int i = 0 ;i < images.length; i++)
{
HashMap<String,Object> map = new HashMap<String,Object>();
map.put("itemImage", images[i]);
lst.add(map);
}
SimpleAdapter adpter = new SimpleAdapter(this,
lst,R.layout.tab1_item_layout,
new String[]{"itemImage"},
new int[]{R.id.MainActivityImage});
_gridView1.setAdapter(adpter);
_gridView1.setPadding(15, 15, 15, 15);  //每格的间距  
_gridView1.setOnItemClickListener(new gridView1OnClickListener());
}


------------------------------------------------------------------------------------------------------------------------------

SimpleAdapter adpter = new SimpleAdapter(this,
lst,R.layout.tab1_item_layout,
new String[]{"itemImage"},
new int[]{R.id.MainActivityImage});

这里要说一下,配置器的参数,

第一个参数:就不用我介绍了吧,如果第一个不知道你就放弃吧。

第二个参数:存放你数据的数组。

第三个参数:子布局的XML文件。

第四个参数: 是为子布局文件中的每一个控件在map中附上KEY值。

第五个参数:子布局中的控件, 也就是你想要显示在网格布局中的控件,

我这里只添加了Imageview到九宫格中,也就是只有三行三列的一个就宫格的样式,每一个item下面没有文字描述,如果需要可以添加

map.put("itemtextview", textview[i]);把每个textview添加到map中,

SimpleAdapter adpter = new SimpleAdapter(this,
lst,R.layout.tab1_item_layout,
new String[]{"itemImage"},
new int[]{R.id.MainActivityImage});

配置器这里需要修改参数new String[]{"itemImage",“itemtextview”},new int[]{R.id.MainActivityImage,R.id.MainActivitytextview}

同样子布局文件也需要添加相对应的控件

<!-- 九宫格每一格的布局 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >


    <ImageView
        android:layout_marginTop="15dp"
        android:id="@+id/MainActivityImage"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_gravity="center_horizontal" 
        android:layout_marginBottom="15dp"/>


    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" 

        android:layout_gravity="center_horizontal" 
        android:layout_below = "@+id/MainActivityImage"/>


</LinearLayout>



----------------------------------------------------------------------------------------------------------------------------------------


监听就很简单了,int arg2 就是你点击的item的序号,注意一点item序号从0开始

class gridView1OnClickListener implements OnItemClickListener
{
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Object obj = _gridView1.getAdapter().getItem(arg2);
HashMap<String,Object> map  = (HashMap<String,Object>)obj;
// String str = (String) map.get("itemText");
// Intent intent = new Intent();  
// intent.setClass(Activity1.this, Temperature_alarm.class);  
// intent.putExtra("Name", str);  
// startActivity(intent); 
// Toast.makeText(getApplicationContext(), ""+str+"\n", 0).show();
}
}

   到这就完事了,希望可以帮到比我还要小白的小伙伴们......

0 0