今天在修改一个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-代码引用)的更多相关文章

  1. GridView Item 大小可能不一样,如何保持同一行的Item 高度大小相同,且GridView高度自适应!

    昨天用到GridView,但是遇到几个问题,就是GridView默认的item其实大小是一致的,但是我们经常会遇到item大小不同,系统默认会留白的问题,很头疼!如下图这样的:      就会造成,右 ...

  2. NGUI实现的一套不同大小 Item 的循环滚动代码

    测试: 数据 & Item  的 Ctrl : using UnityEngine; public class ScrollViewItemData { public int index; p ...

  3. Item 26: 避免对universal引用进行重载

    本文翻译自<effective modern C++>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 如果你需要写一个以名字作为参数,并记录下当前日期和 ...

  4. 一个可变布局列表,有9种布局item大小,每个item可拖拽切换位置

    代码地址如下:http://www.demodashi.com/demo/11271.html 一.准备工作 准备一台安卓设备手机,4.4以上版本 本例子实现,一个可变布局列表,有9种布局item大小 ...

  5. 实现图片大小的自动控制( 图片大小控制CSS代码)

    图片大小控制CSS代码 将以下代码放到你的样式表文件中即可实现图片大小的自动控制. /*图片大小控制CSS By Tekin */img,a img{border:0;margin:0;padding ...

  6. GridView item设置点击背景

    GridView item设置点击背景 android:listSelector="@android:color/transparent"

  7. html页面控制字体大小的js代码

    dom对象控制显示文章字体大小的js代码 <head> <script type="text/javascript"> function check(siz ...

  8. c++命令提示符窗体下打印指定大小的菱形代码

    c++命令提示符窗体下打印指定大小的菱形代码 VS2010下,新建空项目.加入源文件,将代码粘贴进去就能够了. 通过改maxRows值的大小,能够控制菱形的大小 #include <stdio. ...

  9. MyEclipse背景色不伤眼+字体大小调节+代码格式化不换行

随机推荐

  1. UVALive 2659 数独 DLX模板

    建图: 从1到16枚举所有的行.列上放的数. 代码: #include <iostream> #include <cstdio> #include <cstring> ...

  2. C# 字符串 分割 反转 Base64

    "; //字符串 ToBase64 byte[] bytes = Encoding.Default.GetBytes(pwd); pwd = Convert.ToBase64String(b ...

  3. KNN分类器

    KNN学习(K-Nearest Neighbor algorithm,K最邻近方法 )是一种统计分类器,对数据的特征变量的筛选尤其有效. 基本原理 KNN的基本思想是:输入没有标签(标注数据的类别), ...

  4. RvmTranslator7.0-IFC

    RvmTranslator7.0-IFC eryar@163.com RvmTranslator can translate the RVM file exported by AVEVA Plant( ...

  5. Android LruCache 压缩图片 有效避免程序OOM

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9316683 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工, ...

  6. javascript 左侧菜单

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Python(八) 正则表达式与JSON

    一.初识正则表达式 正则表达式 是一个特殊的字符序列,一个字符串是否与我们所设定的这样的字符序列,相匹配 快速检索文本.实现替换文本的操作 json(xml) 轻量级 web 数据交换格式 impor ...

  8. Callback<> and Bind()

    Callback<> and Bind() Introduction The templated base::Callback<> class is a generalized ...

  9. 添加 validate 验证规则

    上篇文章链接:http://blog.csdn.net/chenmoimg_/article/details/71191476 修改 msg.js $.extend($.validator.messa ...

  10. BZOJ2115: [Wc2011] Xor(Dfs树,Xor线性无关组)

    Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 ...