android gridview 固定列数,Android GridView 指定行数,动态行宽,占满空间

本文介绍了如何在Android中使用GridView实现全屏填充,通过设置为固定三列并动态调整行宽,使每个子项占据屏幕的三分之一高度的三分之二,以达到占满空间的效果。在Adapter的getView方法中,根据屏幕分辨率计算Item的宽度和高度,同时展示了横屏和竖屏的显示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时间我们需要 使用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());

最后看一下在横屏效果

ddc50b455e68ea14c28a82260963466c.png

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

040755f1f4bc72e6fd603818c455fa3b.png

Java关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)

要求:统计一个src文件下的所有.java文件内的代码行数(注释行.空白行不统计在内) 分析:先封装一个静态方法用于统计确定的.java文件的有效代码行数.使用字符缓冲流读取文件,首先判断是否是块注释 ...

Android中动态设置GridView的列数、列宽和行高

在使用GridView时我们知道,列数是可以通过设计时的属性来设置的,列的宽度则是根据列数和GridView的宽度计算出来的.但是有些时候我们想实现列数是动态改变的效果,即列的宽度保持某个值,列的数量 ...

用django统计代码行数+注释行数

实现统计代码行数: 1.首先在url.py中配置 from django.conf.urls import url from django.contrib import admin from app0 ...

jq根据table的tr行数动态删除相应的行

.Net_用控制台程序打印指定行数的三角型(面试题)

.Net_用控制台程序打印指定行数的三角型(面试题)   下面是一个由*号组成的4行倒三角形图案.要求: 1.输入倒三角形的行数,行数的取值3-21之间,对于非法的行数,要求抛出提示“非法行数!”: ...

android ScrollView 控制行数

利用ScrollView 来控制textView 显示的行数

随机推荐

Keil软件常见的警告和错误含义。——Arvin

1. warning:  #767-D: conversion from pointer to smaller integer 解释:将指针转换为较小的整数 影响:可能造成的影响:容易引起数据截断,造 ...

jquery文件上传控件 Uploadify

(转自 http://www.cnblogs.com/mofish/archive/2012/11/30/2796698.html) 基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同 ...

NodeJS实战:Express+Mongoose+ejs

元宵还没到,先向所有朋友拜一个晚年~~~ 文章目录: 1.组件版本号 -- --node -- --express -- --Mongoose 2.初始化项目 firstblood -- --用 ex ...

OpenStack

[官网]http://www.openstack.org/ [视频教程1]http://blog.csdn.net/u010973404/article/details/16841229 [视频教程2 ...

ubuntu系统AndroidStudio修改内存大小

位于android-studio/bin目录下的studio64.vmoptions和studio.vmoptions文件. 把Xms,Xmx,-XX:MaxPermSize,-XX:Reserved ...

本地广播 localBroadcastManager Android

使用localBroadcastManager发出的广播只能在本应用程序的内部进行传递. App应用内广播可理解为一种局部广播,广播的发送者和接收者都同属于一个App. 相比于全局广播(普通广播),A ...

python基础语法、数据结构、字符编码、文件处理 练习题

考试范围 '''1.python入门:编程语言相关概念2.python基础语法:变量.运算符.流程控制3.数据结构:数字.字符串.列表.元组.字典.集合4.字符编码5.文件处理''' 考试内容 1.简 ...

endnote格式

endnote插入参考文献后的对齐方式和缩进空格 听语音 | 浏览:4780 | 更新:2016-11-28 20:46 1 2 3 4 5 6 7 分步阅读 1.endnote 导入到word参考文 ...

第六届蓝桥杯省赛 java三羊献瑞

将文字看作一个个变量.根据一开始确定的文字的值进行暴力循环. 三羊献瑞 观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞------------------- 三 羊 生 瑞 气 (如果有对齐 ...

011_自定义mac通知的时长

打开终端(找不到的点击 Mac 屏幕右上角放大镜按钮,Spotlight 搜索 “终端”),粘入下面这行命令,回车就行了.注意最后的 # 替换成你希望通知中心横幅停留的秒数,比如 15.default ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值