Android 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());
最后看一下在横屏效果
坚屏的效果,也没有问题:
Android GridView 指定行数,动态行宽,占满空间的更多相关文章
- 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行数动态删除相应的行
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Oracle 行转列(不固定行数的行转列,动态)(转)
http://bbs.csdn.net/topics/330039676 SQLSERVER :行列转换例子: http://www.cnblogs.com/gaizai/p/3753296.htm ...
- Android GridView使用View.GONE只隐藏内容而不隐藏空间的解决方案
最近在处理GridView的时候遇到这样一个问题:Android手机客户端接收服务端返回的一串数据(数据条数不固定),这串数据不一定都要显示到GridView上,也就是说有一部分内容需要隐藏掉,即有一 ...
- 算法积累:解决如何获取指定文件夹路径或者文件路径下所有子文件后缀为.h .m .c的文本的行数
1.先解决如何获取一个文件的代码行数 一开始对于这个问题,我的思路就回荡在:1字符串子字符串的判断 2循环直到结束的想法 3将原来是"\n"替换掉之类的想法 一个问题总会有多种解决 ...
- .Net_用控制台程序打印指定行数的三角型(面试题)
.Net_用控制台程序打印指定行数的三角型(面试题) 下面是一个由*号组成的4行倒三角形图案.要求: 1.输入倒三角形的行数,行数的取值3-21之间,对于非法的行数,要求抛出提示“非法行数!”: ...
- android ScrollView 控制行数
利用ScrollView 来控制textView 显示的行数 <ScrollView android:layout_width="fill_parent" android:l ...
随机推荐
- [转]Hibernate Session各种状态转换方法分析
摘自http://spiritfrog.iteye.com/blog/221177 我的印象里, Hibernate session中常用的保存操作只有:save, update, saveOrUpd ...
- SPOJ #453. Sums in a Triangle (tutorial)
It is a small fun problem to solve. Since only a max sum is required (no need to print path), we can ...
- nokia5230 出厂设置
你手机sim卡里的电话没事,还有储存卡里都没事,这个只是针对手机内存,如果不放心,拿你不用的手机卡,拔了内存卡格式化你好,我来具体说说吧首先如果你要单一恢复出厂设置,代码是输入*#7780#密码没改是 ...
- TMDS协议
1 概述 1.1 连接结构 图1 TMDS连接结构 数据流中包含了像素和控制数据,发送器在任何给定的输入时钟周期,到底是编码像素数据还是控制数据取决于数据使能信号DE,DE有效时,指示像素数 据 ...
- iphone dev 入门实例1:Use Storyboards to Build Table View
http://www.appcoda.com/use-storyboards-to-build-navigation-controller-and-table-view/ Creating Navig ...
- python 读取sqlite3 数据库
import sqlite3 name = "tom" age = 30 con = sqlite3.connect("d:\\test.db") cur = ...
- windows下boost库的基本使用方法
因为boost都是使用模板的技术,所以所有代码都是写在一个.hpp头文件中.这样boost中的大部分内容是不需要编译生成相应的链接库,只需要设置下面的包含目录(或者设置一下环境变量),在源文件中包含相 ...
- BestCoder Round #84 Bellovin
Bellovin 题意: 给个中文链接:戳戳戳 题解: 这个题其实就是让你求每一位的最长公共子序列,之后输出就好了,求这个有2个算法,一个是n方,另一个nlogn,所以显然是nlogn的算法,其实这就 ...
- Python 汉字转拼音库 pypinyin
一.初衷: 一些开源软件的配置文件中识别区分的部分用英文,那么我们在批量生成配置文件的时候,可以从CMDB导入汉字(idc_name), 然后将它转换成拼音,再或者拼接上IP地址,以便更准确的识别.例 ...
- 如何利用svn自动同步更新到网站服务器
我们最终的目的是:当本地提交后,SVN服务器自动更新服务器端指定WEB目录内的文件 实现方法: 找到服务器端 SVN版本库所在的目录(目录名称是Repositories),这个目录是在安装Visual ...