GridView的用法

来源:互联网 发布:阿里云过户域名流程 编辑:程序博客网 时间:2024/04/30 09:52

GirdView和listView很类似,不过就是布局有些差异,其他都没什么。

废话不多说,直接上代码。(充分体现实干精神有木有。。)



先说说它的效果图














----------------------我是华丽的分割线---------------------------------------------------------------------





首先布局文件,在activity_main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.example.gridviewdemo.MainActivity" >    <!-- gravity居中显示,     ndroid:horizontalSpacing="1pt"   表示每个item水平间隔的距离,      android:verticalSpacing="1pt"    表示每个item垂直间隔的距离     android:numColumns="4"           表示一行有四个Item    -->    <GridView        android:id="@+id/main_gv"        android:layout_width="match_parent"        android:layout_height="254dp"        android:gravity="center"        android:horizontalSpacing="1pt"        android:numColumns="4"        android:verticalSpacing="1pt" >    </GridView>    <ImageView        android:id="@+id/main_iv"        android:layout_width="match_parent"        android:layout_height="217dp"        android:layout_alignBottom="@id/main_gv" /></LinearLayout>



这里是activity.java...

package com.example.gridviewdemo;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.GridView;import android.widget.ImageView;import android.widget.SimpleAdapter;public class MainActivity extends Activity {private GridView main_gv;private ImageView main_iv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 1.获取UI控件idinitView();// 2.初始化数据initData();}private void initData() {List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();final int[] drawable_id = {R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.e,R.drawable.d, R.drawable.f, R.drawable.g, R.drawable.h,R.drawable.i, R.drawable.j, R.drawable.k, R.drawable.l,};//这里是在适配器里统计图片的数目及提供图片的positionfor (int i = 0;i <drawable_id.length; i++ ) {Map<String, Object> map = new HashMap<String, Object>();map.put("image", drawable_id[i]);listItems.add(map);}// 3.到drawable加载几张图片,设置设配器,this, null, 0, null, null这里5个参数,它要什么,我给什么//SimpleAdapter sa = new SimpleAdapter(this, listItems, R.layout.cell(这里随便写个布局),//new String[]{"image"}(可以写死), new int[]{R.id.image1}(可以写死));SimpleAdapter sa = new SimpleAdapter(this, listItems, R.layout.cell,new String[]{"image"}, new int[]{R.id.image1});//4.GridView设置适配器main_gv.setAdapter(sa);//5.设置点击事件main_gv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> aview, View view, int position,long id) {//设置图片的来源main_iv.setImageResource(drawable_id[position]);}});}private void initView() {main_gv = (GridView) findViewById(R.id.main_gv);main_iv = (ImageView) findViewById(R.id.main_iv);}}






0 0
原创粉丝点击