您的位置:首页 > 移动开发 > Android开发

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

2016-12-09 10:07 369 查看
 

        今天要写一个简单的九宫格布局,通过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();
}
}

   到这就完事了,希望可以帮到比我还要小白的小伙伴们......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android gridview 九宫格