GridView使用的技巧

今天用gridview遇到一个问题,看下图
<img src="http://img.blog.csdn.net/20160226093238343?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
这样算是做出来了,但是不是我想要,图片之间的宽度感觉好宽,我想要的是图片上下左右的宽度一样,弄了好久出来了,
其实GridView,很好使用,下面是他的一下属性    

    android:columnWidth 设置列的宽度      
   android:horizontalSpacing="5dp" 设置各元素见水平间距     
    android:verticalSpacing="5dp"  设置各元素见垂直巨鹿       
    android:numColumns="3"  设置列数        
   android:stretchMode="columnWidth" 设置拉伸模式,(这里拉伸的是本身,)       
    android:scrollbars="@null"/>  隐藏滚动条 或者android:scrollbars="none" 
   基本也就这么多属性,  用到时候适配器建议用BaseAdapter  感觉这个最好用,
 出现上面的原因,先贴下部分代码
                @Override
		public View getView(int position, View convertView, ViewGroup parent) {
			ImageView imageView;
			
			if (convertView == null) {
				 
				//convertView = LayoutInflater.from(context).inflate(R.layout.my_information_item,null);
				imageView = new ImageView(context);
				//设置ImageView 对象布局
				imageView.setLayoutParams(new GridView.LayoutParams(80,80));
				//设置边界对整齐
				imageView.setAdjustViewBounds(false);
				//设置刻度类型
				imageView.setScaleType(imageView.getScaleType().CENTER_CROP);
				//设置间距
				imageView.setPadding(5, 5, 5, 5);
				
			}else {
				imageView = (ImageView) convertView;
			}
			imageView.setImageResource(imgs[position]);
	
			return imageView;
		}
		
	}
图片是动态添加的,想改变图片的大小还是要在java代码中,  
imageView.setLayoutParams(new GridView.LayoutParams(80,80)); 这个就是关键,设置图片的长和宽都是80 ,而在xml中
有设置一行图片的具体个数
  <GridView
        android:id="@+id/my_infor_picture"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:horizontalSpacing="5dp"
        android:verticalSpacing="5dp"
        android:numColumns="3"
        android:stretchMode="columnWidth"
        android:scrollbars="@null"/> 
例如这个设置3张图片 这样的话,设置的<pre name="code" class="html">android:verticalSpacing="5dp" 就会无效,系统等分三份,
要改的话就在java代码中把宽度设置为变量,
imageView.setLayoutParams(new GridView.LayoutParams(LayoutParams.MATCH_PARENT,180));
这样的效果就会得到我们想要的。 
不知道自己说的是否详细,有不知道大家可以再问。做好的效果图如下
<img src="http://img.blog.csdn.net/20160226093530438?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />








你可能感兴趣的:(Android开发,GridView)