博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android GridView 指定行数,动态行宽,占满空间
阅读量:4972 次
发布时间:2019-06-12

本文共 1175 字,大约阅读时间需要 3 分钟。

有时间我们需要 使用GridViw 让它占满父控件,例:

特别是在适配的时间比较麻烦,在不同的机型上可能分出下,下面空的太多,或有滚动条问题,;

下面说一下实现思路:

首先,设置GridView 为三列,出来的为二行三列;

我们在Adapter getView 中判断分辨率,得到宽度和高度,GridView 占总高度的八分中的三分;

设置  Item 即每个子项的高占的空间八分中的三分的一半,宽占屏幕的三分之一;

其次把哪么把图片设置为Item高度的一半,即 ScreenHight/8*3/2/2;

宽度为Item宽度的二分之一,图片缩放类似为 CENTER_INSIDE

这样,基本就可以占满全空间了;

下面看代码:

设置Item:

int screenWidth = ScreenUtils.getScreenWidth();int screenHeight = ScreenUtils.getScreenHeight();//每个子项占宽度的三分之一,高度是宽屏的分七分,再占三分中的二分之一,还需要减去下面toolbarint viewWidth = screenWidth/3;int viewHeight = screenHeight*3/(2*8);//L.e("screenWidth:" + screenWidth);if (view == null) {    view = View.inflate(mContext, R.layout.fragment_item_mine_grid, null);    AbsListView.LayoutParams params = new AbsListView.LayoutParams(viewWidth,viewHeight);     view.setLayoutParams(params);}
设置图片:

ViewGroup.LayoutParams ps = imageView.getLayoutParams();ps.width = viewWidth/2;ps.height = viewHeight/2;imageView.setLayoutParams(ps);//imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);Mine_GridItem ci = mList.get(i);textView.setText(ci.getType());imageView.setImageResource(ci.getResource());

最后看一下在横屏效果

坚屏的效果,也没有问题:

转载于:https://www.cnblogs.com/sharecenter/p/5621016.html

你可能感兴趣的文章
Py 可能是最全面的 python 字符串拼接总结(带注释版)
查看>>
《Java程序设计实验》 软件工程18-1,3 OO实验2
查看>>
【Herding HDU - 4709 】【数学(利用叉乘计算三角形面积)】
查看>>
OPENSSL使用方法
查看>>
接口操作XML
查看>>
idhttp访问DATASNAP有密码验证的中间件
查看>>
libmidas.so.2
查看>>
开发WINDOWS服务程序
查看>>
httpencode编码
查看>>
cross socket和msgpack的数据序列和还原
查看>>
解决跨操作系统平台JSON中文乱码问题
查看>>
DELPHI搭建centos开发环境
查看>>
IdHTTPServer允许跨域访问
查看>>
更新.net core 3.0,dotnet ef命令无法使用的解决办法
查看>>
React躬行记(13)——React Router
查看>>
前端利器躬行记(1)——npm
查看>>
前端利器躬行记(2)——Babel
查看>>
前端利器躬行记(6)——Fiddler
查看>>
Forbidden You don't have permission to access / on this server.
查看>>
Intellij Idea新建web项目(转)
查看>>