gridView -item 大小调节(dimen-代码引用)
今天在修改一个gridview的时候,发现里面的内容并不会自动适应,填满整个gridview,而是会产生滑动,尝试了很多的方法,包括在item文件中设定width和height,结果,宽度可调,高度却没办法调整,后来,在网上找了好多的方法,终于有了一个靠谱的,如下,也就是在item加载的adapter里面就行设置
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
if (MmsConfig.getIpMessagServiceId(mContext) == IpMessageServiceId.NO_SERVICE) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.share_grid_common_item, null);
} else {
convertView = LayoutInflater.from(mContext).inflate(R.layout.share_grid_item, null);
}
convertView.setTag(convertView);
} else {
convertView = (View) convertView.getTag();
}
/* Vanzo:zhangshuli on: Wed, 21 Jan 2015 18:16:59 +0000
dime资源的引用方法
*/
int height = (int) mContext.getResources().getDimension(R.dimen.share_item_port_height);
int width = (int) mContext.getResources().getDimension(R.dimen.share_item_port_width);
AbsListView.LayoutParams param = new AbsListView.LayoutParams(width, height);//设置高和宽,注意是AbsListView
convertView.setLayoutParams(param);
// End of Vanzo:zhangshuli TextView text = (TextView) convertView.findViewById(R.id.tv_share_name);
ImageView img = (ImageView) convertView.findViewById(R.id.iv_share_icon);
if (position < mStringArray.length) {
text.setText(mStringArray[position]);
img.setImageResource(mIconArray[position]);
}
return convertView;
}
}
调整gridview在父类中的位置,注意,是可以超出屏幕外边的哦
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
int childLeft = 0;
final int childCount = getChildCount();
for (int i = 0; i < childCount; i++) {
final View childView = getChildAt(i);
if (childView.getVisibility() != View.GONE) {
final int childWidth = childView.getMeasuredWidth();
/* Vanzo:zhangshuli on: Wed, 21 Jan 2015 18:12:28 +0000
这段代码就是设置gridview位置的,这个主要是相对父类的位置
*/
int top = (int) mContext.getResources().getDimension(R.dimen.share_item_port_top);
childView.layout(childLeft, top, childLeft + childWidth,
childView.getMeasuredHeight());
// End of Vanzo: zhangshuli
childLeft += childWidth;
}
}
}
附上代码中处理dp跟px转化的方法
一个就是在dimen.xml中定义,引用的时候会自动转化为px;
另一个就是直接在代码中将一个固定数值转化为px,如下
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
TextView text = (TextView) convertView.findViewById(R.id.tv_share_name);
gridView -item 大小调节(dimen-代码引用)的更多相关文章
- GridView Item 大小可能不一样,如何保持同一行的Item 高度大小相同,且GridView高度自适应!
昨天用到GridView,但是遇到几个问题,就是GridView默认的item其实大小是一致的,但是我们经常会遇到item大小不同,系统默认会留白的问题,很头疼!如下图这样的: 就会造成,右 ...
- NGUI实现的一套不同大小 Item 的循环滚动代码
测试: 数据 & Item 的 Ctrl : using UnityEngine; public class ScrollViewItemData { public int index; p ...
- Item 26: 避免对universal引用进行重载
本文翻译自<effective modern C++>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 如果你需要写一个以名字作为参数,并记录下当前日期和 ...
- 一个可变布局列表,有9种布局item大小,每个item可拖拽切换位置
代码地址如下:http://www.demodashi.com/demo/11271.html 一.准备工作 准备一台安卓设备手机,4.4以上版本 本例子实现,一个可变布局列表,有9种布局item大小 ...
- 实现图片大小的自动控制( 图片大小控制CSS代码)
图片大小控制CSS代码 将以下代码放到你的样式表文件中即可实现图片大小的自动控制. /*图片大小控制CSS By Tekin */img,a img{border:0;margin:0;padding ...
- GridView item设置点击背景
GridView item设置点击背景 android:listSelector="@android:color/transparent"
- html页面控制字体大小的js代码
dom对象控制显示文章字体大小的js代码 <head> <script type="text/javascript"> function check(siz ...
- c++命令提示符窗体下打印指定大小的菱形代码
c++命令提示符窗体下打印指定大小的菱形代码 VS2010下,新建空项目.加入源文件,将代码粘贴进去就能够了. 通过改maxRows值的大小,能够控制菱形的大小 #include <stdio. ...
- MyEclipse背景色不伤眼+字体大小调节+代码格式化不换行
随机推荐
- 【CS Round #36 (Div. 2 only) A】Bicycle Rental
[题目链接]:https://csacademy.com/contest/round-36/task/bicycle-rental/ [题意] 让你从n辆车中选一辆车; 每一辆车有3个属性 1.到达车 ...
- HDU 4183Pahom on Water(网络流之最大流)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4183 这题题目意思非常难看懂..我看了好长时间也没看懂..终于是从网上找的翻译. .我就在这翻译一下吧 ...
- 洛谷P3807 【模板】卢卡斯定理exgcd
题目背景 这是一道模板题. 题目描述 给定n,m,p(1\le n,m,p\le 10^51≤n,m,p≤105 ) 求 C_{n+m}^{m}\ mod\ pCn+mm mod p 保证P为pri ...
- Sql Server通用分页存储过程
Sql Server2005通用分页存储过程 CREATE PROCEDURE [dbo].[Common_GetPagedList] ( @TableName nvarchar(100), --表名 ...
- 威联通 移动硬盘路径 /share/USBDisk1
威联通 移动硬盘路径 /share/USBDisk1 cd /share/USBDisk3/Movies
- 电脑无法上网,DHCP客户端不能正确获取IP地址
问题特征:DHCP服务器更新[保留]配置信息后,给一客户端绑定了新的IP地址;但客户端IP地址并未正确更新; 处理: 一.检查DHCP服务器配置; 1.MAC地址.IP地址均正确;并已“添加到筛选器” ...
- input[type=date]
::-webkit-datetime-edit – 控制编辑区域的 ::-webkit-datetime-edit-fields-wrapper – 控制年月日这个区域的 ::-webkit-date ...
- 紫书 例题 9-6 UVa 11400 (线性结构上的动态规划)
这道题的下标从1开始比较方便,一方面前缀和算的方便一些,一方面涉及到前j 个灯泡,那么如果从0开始,前3个灯泡就是第0, 1, 2, 3个,非常奇怪. 所以灵活换下标. 然后这道题的动规有点暴力枚举的 ...
- ArcGIS Engine中删除要素的几种方法总结
转自原文 ArcGIS Engine中删除要素的几种方法总结 /// <summary> /// 通过IFeature.Delete方法删除要素 /// </summary> ...
- Volley简单学习使用五—— 源代码分析三
一.Volley工作流程图: 二.Network 在NetworkDispatcher中须要处理的网络请求.由以下进行处理: NetworkResponse networkResponse = ...