首页 > 代码库 > 安卓开发复习笔记——GridView组件
安卓开发复习笔记——GridView组件
1、什么是GridView?
GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的。
2、正文
GridView的用法很多,网上介绍最多的方法就是自己实现一个ImageAdapter继承BaseAdapter,再供GridView使用,太多的东西我就不再重复去写,这次记录点不一样的用法。
先看下效果图:(点击应用图标以Toast的方式显示信息)
首先先说下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 | 两行之间的间距。 |
然后直接上代码吧,注释很全。
MainActivity.xml
1 package com.example.gridviewtest; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.List; 6 import java.util.Map; 7 8 import android.app.Activity; 9 import android.os.Bundle;10 import android.view.View;11 import android.widget.AdapterView;12 import android.widget.AdapterView.OnItemClickListener;13 import android.widget.GridView;14 import android.widget.SimpleAdapter;15 import android.widget.Toast;16 17 public class MainActivity extends Activity implements OnItemClickListener {18 19 private GridView gridView;// 声明GridView对象20 private List<Map<String,Object>> dataList;//数据源集合对象21 private SimpleAdapter simpleAdapter;22 // 图标资源23 private int images[] = { R.drawable.address_book, R.drawable.calendar,24 R.drawable.camera, R.drawable.clock, R.drawable.games_control,25 R.drawable.messenger, R.drawable.ringtone, R.drawable.settings,26 R.drawable.speech_balloon, R.drawable.weather, R.drawable.world,27 R.drawable.youtube };28 // 图标下文字资源29 private String[] texts= { "联系人", "日历", "照相机", "时钟", "游戏", "短信", "铃声",30 "设置", "语音", "天气", "浏览器", "Youtube" };31 32 @Override33 protected void onCreate(Bundle savedInstanceState) {34 super.onCreate(savedInstanceState);35 setContentView(R.layout.activity_main);36 gridView = (GridView) findViewById(R.id.gridview);// 取得对象37 gridView.setOnItemClickListener(this);38 dataList=new ArrayList<Map<String,Object>>();39 /*40 * GridView使用步骤 1、获取数据源 getData() 2、制作适配器 3、绑定适配器41 */42 43 //1、获取数据源44 dataList=getData();45 //2、制作适配器46 simpleAdapter=new SimpleAdapter(this, dataList, R.layout.gridview_item, new String[]{"image","text"}, new int[]{R.id.image,R.id.text});47 //绑定适配器48 gridView.setAdapter(simpleAdapter);49 }50 51 private List<Map<String, Object>> getData() { 52 for(int i=0;i<images.length;i++){//每个map对象对应着一组数据53 Map<String, Object> map=new HashMap<String, Object>();54 map.put("image", images[i]);55 map.put("text", texts[i]);56 dataList.add(map); 57 }58 return dataList;59 }60 61 @Override62 public void onItemClick(AdapterView<?> parent, View view, int position,63 long id) {64 Toast.makeText(this,texts[position]+"应用被选择" , Toast.LENGTH_SHORT).show();65 }66 67 }
activity_main.xml
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 tools:context="com.example.gridviewtest.MainActivity" 6 android:orientation="vertical"> 7 8 <!-- 9 GridView是可滚动的网格。一般用来显示多张图片。10 android:horizontalSpacing="5dp" 两列之间的间距是5dp11 android:verticalSpacing="5dp" 两行之间的间距是5dp12 android:stretchMode="spacingWidth" 缩放与列宽大小同步13 android:numColumns="auto_fit" 本来是一行显示几个,现在改为自动分配14 -->15 <GridView 16 android:id="@+id/gridview"17 android:layout_width="wrap_content"18 android:layout_height="wrap_content"19 android:horizontalSpacing="5dp"20 android:verticalSpacing="10dp"21 android:numColumns="3"22 ></GridView>23 24 25 26 </LinearLayout>
gridview_item.xml
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context="com.example.gridviewtest.MainActivity" 10 android:gravity="center"11 android:orientation="vertical">12 13 <ImageView 14 android:id="@+id/image"15 android:layout_width="60dp"16 android:layout_height="60dp"17 android:layout_gravity="center"18 android:src="@drawable/ic_launcher"19 />20 21 <TextView 22 android:id="@+id/text"23 android:layout_width="wrap_content"24 android:layout_height="wrap_content"25 android:layout_gravity="center"26 android:layout_marginTop="3dp"27 />28 29 30 31 32 </LinearLayout>
AndroidManifest.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.example.gridviewtest" 4 android:versionCode="1" 5 android:versionName="1.0" > 6 7 <uses-sdk 8 android:minSdkVersion="8" 9 android:targetSdkVersion="21" />10 11 <application12 android:allowBackup="true"13 android:icon="@drawable/ic_launcher"14 android:label="@string/app_name"15 android:theme="@android:style/Theme.Black.NoTitleBar" >16 <activity17 android:name=".MainActivity"18 android:label="@string/app_name" >19 <intent-filter>20 <action android:name="android.intent.action.MAIN" />21 22 <category android:name="android.intent.category.LAUNCHER" />23 </intent-filter>24 </activity>25 </application>26 27 </manifest>
素材图片这里就不给出了,大家自己随便网上搜吧,一大堆的。
安卓开发复习笔记——GridView组件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。