Android中GridView布局实现整体居中方法示例

前言

本文主要给大家介绍了关于Android中GridView布局整体居中的相关内容,是对于自己在项目中遇到问题的一个记录,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

效果图:

示例代码:

/** * 对高度和宽度进行统计 然后设置gridView的宽高。 * @param numColumns 设定行数 * @param gridView */ public static void calGridViewSumWH(int numColumns ,GridView gridView) { // 获取GridView对应的Adapter ListAdapter listAdapter = gridView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; int totalWidth = 0; for (int i = 0, len = listAdapter.getCount(); i < len; i++) { // listAdapter.getCount()返回数据项的数目 View listItem = listAdapter.getView(i, null, gridView); listItem.measure(0, 0); // 计算子项View 的宽高 totalWidth = listItem.getMeasuredWidth(); if ((i+1)%numColumns == 0) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { totalHeight += listItem.getMeasuredHeight() + gridView.getVerticalSpacing(); // 统计所有子项的总高度 } else { totalHeight += listItem.getMeasuredHeight(); } } if ((i+1) == len && (i+1)%numColumns != 0) { totalHeight += listItem.getMeasuredHeight(); // 统计所有子项的总高度 } } if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) { totalHeight += 20; } if (listAdapter.getCount() < numColumns) { gridView.setNumColumns(listAdapter.getCount()); } ViewGroup.LayoutParams params = gridView.getLayoutParams(); params.height = totalHeight; params.width = totalWidth * listAdapter.getCount(); gridView.setLayoutParams(params); }

使用时相对于父布局,应该是居中的

例: RelativeLayout android:layout_centerHorizontal="true"

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

时间: 2024-11-02 10:06:45

Android中GridView布局实现整体居中方法示例的相关文章

Android中验证码倒计时的简单实现方法示例

前言 现在的很多app都是使用手机注册的,为了确认使用的是自己的手机,都会加上一个短线验证码的选项,最近公司的项目使用到了这个短信验证码,并且要加入验证码倒计时功能,也就是60秒才能发送一次验证码,再次做过记录,以后使用的时候,可以随时拿来用. 实现 发送验证码的时候一般都会有一个按钮,点击之后便会给你输入的手机发送一条验证码,我这里使用的是一个TextView,显示特定的数字,只用设置TextView的点击事件即可: Android中有一个类,可以很方便的时候该功能,但是也会存在一个问题,就是

Android 中 GridView嵌套在ScrollView里只有一行的解决方法_Android

在做android项目中遇到一个bug,GridView嵌套在ScrollView里只有一行的问题.下面小编在网上找到了解决方法,具体方法如下所示: 方法一:就是上面说的通过计算出来ListView或者GridView中的子列高度和 进行显示: public void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdap

Android 中 GridView嵌套在ScrollView里只有一行的解决方法

在做android项目中遇到一个bug,GridView嵌套在ScrollView里只有一行的问题.下面小编在网上找到了解决方法,具体方法如下所示: 方法一:就是上面说的通过计算出来ListView或者GridView中的子列高度和 进行显示: public void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdap

android自定义 iew-有没有Android中自定义布局的详细教程!

问题描述 有没有Android中自定义布局的详细教程! 有没有Android中自定义布局的详细教程!我想写一个课程表布局,在网上找了几个demo,但是里面的自定义布局看不明白! 解决方案 Composite View Composite views (也被称为 compound views) 是众多将多个view结合成为一个可重用UI组件的方法中最简单的.这种方法的实现过程是这样的: 继承相关的内建的布局. 在构造函数里面填充一个 merge 布局. 初始化成员变量并通过 findViewByI

android 布局-android中的布局是否可以重复利用

问题描述 android中的布局是否可以重复利用 android中的ui布局能同时被不同的java代码使用吗?就是代码中相同的布局直接使用一个就可以了,这样可以吗 解决方案 嗯,是可以的,在布局文件中,可以使用include标签复用其他layout布局,在java代码中,可以通过inflate方法来加载布局. 解决方案二: 可以,参考一下: http://blog.csdn.net/angelia222/article/details/7310304 解决方案三: 可以重复利用,但是会影响效率,

android gr-如何让android中gridview的item大小不一样

问题描述 如何让android中gridview的item大小不一样 类似电视盒子的分类那样,每个item 的大小不一样,可能不实用gridview控件,那用的是什么控件? 解决方案 你说的是仿win8布局吧 可以用html方式http://www.158code.com/article/21 也可以自己实现,用tablelayout也可以用Linarlayout方式布局.不用gridview 解决方案二: 得到item的layoutparams,设置height属性 解决方案三: 用最简单的L

Android中使用定时器的三种方法_Android

本文实例为大家分享了Android中使用定时器的三种方法,供大家参考,具体内容如下 图示: 因为都比较简单,所以就直接贴代码(虑去再次点击停止的操作),有个全局的Handler负责接收消息更新UI 第一种方法:Thread.sleep();方法 Runnable runnable = new Runnable() { @Override public void run() { while (true) { mHandler.sendEmptyMessage(0); try { Thread.sl

Android中GridView和ArrayAdapter用法实例分析_Android

本文实例分析了Android中GridView和ArrayAdapter用法.分享给大家供大家参考,具体如下: GridView是一个表格化的二维排版的View,当GridView的文字放不下时会出现scrolling的效果,GridView中的元素命名为Item,要将Item放入GridView,需要ArrayAdapter对象. 例子如下: import android.app.Activity; import android.os.Bundle; import android.view.V

图片选择-Android中gridview中item点击事件及选中标记

问题描述 Android中gridview中item点击事件及选中标记 求大神帮忙,gridview中的item我加载了一个CheckBox我在适配器中设置了CheckBox的点击事件,gridview的item 点击事件就不能得到触发,现在我想实现的是点击某一个item,对这个item进行标记,再次点击就消除标记!就像QQ上的选中图片,然后进行预览和发送一样的效果,求大神解答 解决方案 将布局文件中的checkbox的属性设置一下,android:focusable=""false&