当前位置:   article > 正文

Android GridView 指定行数,动态行宽,占满空间_gridview元素占比屏幕

gridview元素占比屏幕

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


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

下面说一下实现思路:

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

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

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

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

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

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

下面看代码:

设置Item:

int screenWidth = ScreenUtils.getScreenWidth();
int screenHeight = ScreenUtils.getScreenHeight();
//每个子项占宽度的三分之一,高度是宽屏的分七分,再占三分中的二分之一,还需要减去下面toolbar
int 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());

最后看一下在横屏效果

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


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/242519
推荐阅读
相关标签
  

闽ICP备14008679号