GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的。主要用于设置Adapter。
GridView常用的XML属性:

属性名称

描述

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

两行之间的间距。

下面用一个例子来说明吧;

新建一个空项目,修改main_activity.xml如下:

<RelativeLayoutxmlns: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:paddingTop="@dimen/activity_vertical_margin"android:paddingBottom="@dimen/activity_vertical_margin"tools:context=".MainActivity"android:background="#000000"><GridViewandroid:id="@+id/gridView"android:layout_width="fill_parent"android:layout_height="fill_parent"android:numColumns="4"android:stretchMode="columnWidth"android:gravity="center"></GridView></RelativeLayout>

新增一个item_layout.xml文件,代码入下:

<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical"><ImageViewandroid:id="@+id/img"android:layout_width="wrap_content"android:layout_height="wrap_content"/><TextViewandroid:id="@+id/tv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="天气"android:textColor="#ffffff"/></LinearLayout>

修改mainActivity.java的代码入下:

packageyaowen.com.helloworld;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.View;importandroid.widget.AdapterView;importandroid.widget.GridView;importandroid.widget.SimpleAdapter;importandroid.widget.Toast;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjava.util.Objects;publicclassMainActivityextendsAppCompatActivity{privateGridViewgridView;privateList<Map<String,Object>>data_list;privateSimpleAdaptersim_adapter;//图片封装为一个组,这个素材文件自己找了呀~!privateint[]icon={R.drawable.camera,R.drawable.calendar,R.drawable.chrome,R.drawable.email,R.drawable.maps,R.drawable.music,R.drawable.notes,R.drawable.recorder,R.drawable.phone,R.drawable.playstore,R.drawable.gallery,R.drawable.twitter};//R.drawable.calculator};privateString[]iconName={"照相机","日历","浏览器","邮箱","地图","音乐","便签","录音","电话","应用商店","图库","迅雷"};//,"计算器"};@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);gridView=(GridView)findViewById(R.id.gridView);//新建Listdata_list=newArrayList<Map<String,Object>>();//获取数据getData();//新建数据String[]from={"image","text"};int[]to={R.id.img,R.id.tv};sim_adapter=newSimpleAdapter(this,data_list,R.layout.grid_item,from,to);//配置适配器gridView.setAdapter(sim_adapter);//当AdapterView被单击(触摸屏或者键盘),则返回的Item单击事件gridView.setOnItemClickListener(newAdapterView.OnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){//在本例中arg2=arg3HashMap<String,Object>item=(HashMap<String,Object>)arg0.getItemAtPosition(arg2);//显示所选Item的ItemTextStringtextTest=(String)item.get("text");setTitle(textTest);Toast.makeText(getApplicationContext(),"你点击的是:"+textTest,Toast.LENGTH_SHORT).show();}});}privateList<Map<String,Object>>getData(){//icon和iconName的长度是相同的,这里任选其一都可以for(inti=0;i<icon.length;i++){Map<String,Object>map=newHashMap<String,Object>();map.put("image",icon[i]);map.put("text",iconName[i]);data_list.add(map);}returndata_list;}}

代码就是这么简单,相信你用了会这么觉得了!

最后的效果图如下:

Android之GridView简单说明

Android之GridView简单说明

更多相关文章

  1. Android消息处理机制:源码剖析Handler、Looper,并实现图片异步加载
  2. Android常用图片加载库介绍及对比
  3. Android Studio NDK开发在C代码中将Log输出到logcat上面
  4. 22个值得收藏的android开源代码-UI篇
  5. [Android]混淆代码后生成带签名的apk
  6. 把android sdk 1.5源代码加入SDK
  7. Android代码内存优化建议-Android资源篇
  8. 在Ubuntu16.04上下载并编译Android内核源代码

随机推荐

  1. Android(安卓)-- App生成快捷方式
  2. Android核心技术-day02-03-获取手机内部
  3. Android(安卓)TabHost
  4. IntentService 和ResultReceiver
  5. Android圆形图片--自定义控件
  6. C++11 on Android
  7. Android游戏引擎
  8. Android(安卓)Studio 添加jniLib
  9. android基础控件(3)BottomNavigationView+F
  10. Android(安卓)封装SharedPreference工具