今天在修改一个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. asp.net.core网站重启后登陆无效问题(部署在IIS)

    一.问题 在使用asp.net.core时,把网站发布到IIS后,在后续更新中需要停止网站,然后重启网站,发现已经登陆的用户会退出登陆.过程如下 1.登陆代码(测试) [AllowAnonymous] ...

  2. Spring学习总结(3)——Spring配置文件详解

    Spring配置文件是用于指导Spring工厂进行Bean生产.依赖关系注入(装配)及Bean实例分发的"图纸".Java EE程序员必须学会并灵活应用这份"图纸&quo ...

  3. HDU 3008 Warcraft

    题意:一个人有100点血和100点魔法,Boss有100点血.人有n个技能.每一个技能对Boss有a[i]点伤害, 且会消耗b[i] 的点魔量,人每秒会有t秒魔法恢复(最大为100)Boss每秒有q点 ...

  4. Class C++

    为了尽量降低全局变量的使用并提供用户自己定义类型的功能.C++语言提供了一种新的语言机制---类(class).并以类作为构造程序的基本单位 #include<iostream> usin ...

  5. C语言:具体解释指针

    指针应该算得上是c语言的精华,但也是难点. 非常多教程或者博客都有对其具体的解说与分析. 我这一节的内容,也是解说指针.但我会尽量使用图解的方式,使大家非常easy理解及掌握. 一.基本使用 先来看看 ...

  6. 理解Linq查询

    using System; using System.Linq; static class Program { static double Square(double n) { Console.Wri ...

  7. Linux下配置Squid基础教程

    Linux下配置Squid基础教程 本视频高清下载地址:http://down.51cto.com/data/437529 本文出自 "李晨光原创技术博客" 博客,请务必保留此出处 ...

  8. Windows Server8下补丁分发配置与iSCSI配置

    1.Win Server 8 下配置补丁分发(高清视频下载:http://down.51cto.com/data/424305)本视频适合于Windows Server系统管理员学习 650) thi ...

  9. Python(一) 基本类型

    前言: 什么是代码? 代码是现实世界事物在计算机世界中的映射. 什么事写代码? 写代码是将现实世界中的事物用计算机语言来描述. 一.数字:整形与浮点型 整型:int 浮点型:float (没有单精度和 ...

  10. XFCE 桌面环境美化,fedora27系统

    一.添加RPM Fusion源,安装方法这里就不说了以前的文章里写过. 二.安装XFCE 主题管理器 xfce-theme-manager [root@Fedora ~]# dnf install x ...