前言

xml样板

常用的属性

android:numColumns="auto_fit" ,GridView的列数设置为自动

android:columnWidth="90dp",每列的宽度,也就是Item的宽度

android:stretchMode="columnWidth",缩放与列宽大小同步

NO_STRETCH

0

扩展无效

STRETCH_COLUMN_WIDTH

2

扩展列

STRETCH_SPACING

1

扩展列间的空间

STRETCH_SPACING_UNIFORM

3

均匀地扩展列间的空间

android:verticalSpacing="10dp",两行之间的边距

android:horizontalSpacing="10dp",两列之间的边距

例子1 使用ArrayAdapter

在Activity里

List stringList = new ArrayList<>();

ArrayAdapter arrayAdapter = new ArrayAdapter<>(this,R.layout.text_parent_select_item,stringList);

gridView.setAdapter(arrayAdapter);

text_parent_select_item.xml

例子2 使用SimpleAdapter

Activity类

public class MainActivity extendsActivity {

privateGridView gridView;

private List>dataList;

privateSimpleAdapter adapter;

//如果只有TextView 可以考虑使用ArrayAdapter 适配器,当然你也可以自定义适配器

@Override

protected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

gridView =(GridView) findViewById(R.id.gridview);

//初始化数据

initData();

String[] from={"img","text"};

int[] to={R.id.img,R.id.text};

adapter=new SimpleAdapter(this, dataList, R.layout.gridview_item, from, to);

gridView.setAdapter(adapter);

gridView.setOnItemClickListener(newOnItemClickListener() {

@Override

public void onItemClick(AdapterView> arg0, View arg1, intarg2,

longarg3) {

AlertDialog.Builder builder= new AlertDialog.Builder(MainActivity.this);

builder.setTitle("提示").setMessage(dataList.get(arg2).get("text").toString()).create().show();

}

});

}

voidinitData() {

//图标

int icno[] ={ R.drawable.i1, R.drawable.i2, R.drawable.i3,

R.drawable.i4, R.drawable.i5, R.drawable.i6, R.drawable.i7,

R.drawable.i8, R.drawable.i9, R.drawable.i10, R.drawable.i11, R.drawable.i12 };

//图标下的文字

String name[]={"时钟","信号","宝箱","秒钟","大象","FF","记事本","书签","印象","商店","主题","迅雷"};

dataList = new ArrayList>();

for (int i = 0; i

Map map=new HashMap();

map.put("img", icno[i]);

map.put("text",name[i]);

dataList.add(map);

}

}

}

GridView主布局文件activity_main.xml

android:id="@+id/gridview"android:layout_width="match_parent"android:layout_height="wrap_content"android:columnWidth="80dp"android:stretchMode="spacingWidthUniform"android:numColumns="3"

/>

列表项布局gridview_item.xml

android:id="@+id/img"android:layout_width="60dp"android:layout_height="60dp"android:layout_marginTop="10dp"android:src="@drawable/ic_launcher" />

android:id="@+id/text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="2dp"android:layout_gravity="center"android:textColor="#FFF"android:text="文字"

/>

只显示一行的问题

格外注意!如果你是滚动布局(ListView、ScrollView等等)包裹GridView,就出现不会自动换行的问题。这个时候需要你如下自定义view。

packagecom.weijie.app_user.activity.order;

importandroid.content.Context;

importandroid.util.AttributeSet;

importandroid.widget.GridView;

public class MyGridView extendsGridView {

publicMyGridView(Context context, AttributeSet attrs) {

super(context, attrs);

}

publicMyGridView(Context context) {

super(context);

}

public MyGridView(Context context, AttributeSet attrs, intdefStyle) {

super(context, attrs, defStyle);

}

@Override

public void onMeasure(int widthMeasureSpec, intheightMeasureSpec) {

int expandSpec =MeasureSpec.makeMeasureSpec(

Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);

super.onMeasure(widthMeasureSpec, expandSpec);

}

}

原文:https://www.cnblogs.com/guanxinjing/p/12605374.html

android gridview 详解,Android开发 GridView详解相关推荐

  1. Android App Bundles相关概念及开发流程详解

    本文会根据官网的介绍,结合自己的一些理解,来阐述Android App Bundles的相关概念和开发流程. 主要参考文章如下. https://developer.android.com/guide ...

  2. Android Studio安装与App开发步骤详解

    环境准备 使用的软硬件具体如下: Windows 7 Android Studio 3.3.2[简称:AS,从官网可以下载,或者使用低版本升级:help->check for update] J ...

  3. android gridview控件使用详解_Android开发实现自定义日历、日期选择控件

    点击上方蓝字关注 ?? 来源: wenzhihao123 https://www.jianshu.com/p/a2f102c728ce 前言 最近项目需要日历效果,考虑用第三方的反而不太适合设计需求, ...

  4. Android PullToRefresh (ListView GridView 下拉刷新) 使用详解

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38238749,本文出自:[张鸿洋的博客] 群里一哥们今天聊天偶然提到这个git ...

  5. android gridview 详解,Android GridView九宫图

    属性名称 描述 android:columnWidth 设置列的宽度. android:gravity 设置此组件中的内容在组件中的位置.可选的值有:top.bottom.left.right.cen ...

  6. 《Java和Android开发实战详解》——2.5节良好的Java程序代码编写风格

    本节书摘来自异步社区<Java和Android开发实战详解>一书中的第2章,第2.5节良好的Java程序代码编写风格,作者 陈会安,更多章节内容可以访问云栖社区"异步社区&quo ...

  7. Android NFC开发实战详解

    Android NFC开发实战详解 Android开发实战详解NFC国内第一本AndroidNFC开发书籍带你开启AndroidNFC开发的神秘之旅大综合案例帮助读者快速进入实战角色:WiFi快速连接 ...

  8. 《Java和Android开发实战详解》——1.2节Java基础知识

    本节书摘来自异步社区<Java和Android开发实战详解>一书中的第1章,第1.2节Java基础知识,作者 陈会安,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  9. Android开发 ShapeDrawable详解

    Android开发 ShapeDrawable详解 前言 ShapeDrawable一开始我以为它是对应xml文件属性里的shape的画图,后来发现我错了... 其实ShapeDrawable更像是一 ...

  10. 《Java和Android开发实战详解》——2.2节构建Java应用程序

    本节书摘来自异步社区<Java和Android开发实战详解>一书中的第2章,第2.2节构建Java应用程序,作者 陈会安,更多章节内容可以访问云栖社区"异步社区"公众号 ...

最新文章

  1. HTML 中有用的字符实体
  2. Java中sin、log、tan等复杂数学运算怎么搞?
  3. Centos6.5 下安装opencv
  4. patent sub categories
  5. pdfminer3k 官方文档_IPFS官方周报112期
  6. 定义DO/DTO/VO等POJO类时,不要设定任何属性默认值
  7. 天龙八部网单服务器技能修改,天龙八部3门派技能修改介绍
  8. putty远程linux系统时间修改,用putty怎么修改监控服务器时间?
  9. php实现一个简单的购物网站
  10. 大数据之-Hadoop3.x_MapReduce_WordCount案例需求分析---大数据之hadoop3.x工作笔记0087
  11. 安装linux可是c盘文件夹失败,虚拟机安装linux系统,会对物理的磁盘有影响吗?怎样保证安全,谢了!...
  12. java中的时间片概念_java中常用的时间处理类TimeUtil
  13. 试图加载 Crystal Reports 运行时出现错误
  14. 2022-2028全球STEAM教育行业调研及趋势分析报告
  15. 理光打印机服务器响应错误,理光网络打印机服务器设置
  16. uniapp 设置ios safri浏览器 添加到主屏幕 自定义图片及名称
  17. 计算机知网期刊排名,中国知网网络首发期刊榜单发布,《重庆医学》进入高发文量TOP50(科技类)...
  18. Java大牛呕心沥血经历——技术面试与HR谈薪资技巧
  19. 人工智能中神经网络与自然语言处理共生关系_CodingPark编程公园
  20. 6.2、C++的内联函数、函数重载、局部变量和全局变量

热门文章

  1. datax(3): win环境cmd乱码
  2. GD32F205在IAR上移植FreeRTOS
  3. 小马哥---深度解析mtk刷机平台报错解决 4032 8038等
  4. 【信号与系统实验】实验五 信号抽样与恢复
  5. 深度学习算法:AlphaGo 算法
  6. WinCE下Touch Panel驱动介绍 .
  7. 计算机系统常见的10个硬件 1故障,计算机十项常见故障
  8. 用电信息采集系统常见故障
  9. 单片机矩阵键盘c语言程序,stc89c52单片机下的矩阵键盘程序
  10. 单片机原理与接口技术期末总复习