您的位置:首页 > 移动开发 > Android开发

关于android中gridview的一点总结

2014-06-30 17:53 218 查看
1、在gridview中,如果使用的图片控件进行展示,在满足与不满足条件情况下给控件设置图片,如果设置背景统一用设置背景(如setBackgroundResource())的方法,如果设置
资源图片统一使用该方法(如setImageResource());否则调用setBackgroundResource()方法的控件可能无法正确显示所要的背景

,正确的效果应该如图


//如果满足条件设置一张图片

if("addImagePath".equalsIgnoreCase(path)){

        holder.imgThun.setImageResource(R.drawable.neighbor_test_7);

        }else{

        //如果不满足条件设置为另一张图片

        holder.imgThun.setTag(R.drawable.ic_default);

        }

2、当gridview嵌套在scroolview中时,当行数大于1时,显示不完全

,可以动态获取grivew的高度,再重新设置,显示正确的效果图


//通过下面的三句话进行gridview的高度设置

LinearLayout.LayoutParams linearParams = (LinearLayout.LayoutParams) image_gridview.getLayoutParams(); 
linearParams.height =getGridViewHeight(image_gridview);
image_gridview.setLayoutParams(linearParams);

//所需调用的方法

/**
* 动态获取gridview实际高度
* @param gridview
* @return
* @author jinL
*/
private int getGridViewHeight(GridView listView) {
SendPictureAdapter sendPictureAdapter = (SendPictureAdapter) image_gridview
.getAdapter();
int totalHeight = 0;
int count = (sendPictureAdapter.getCount()-1)/4;
for (int i = 0; i <= count; i++) {
View gridviewItem = sendPictureAdapter.getView(count*4, null, listView); 
gridviewItem.measure(0,0);
gridviewItem.measure(MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED));
totalHeight+=gridviewItem.getMeasuredHeight();
}
return totalHeight;
}

 3、在getView()方法中设置条目的宽高时,需设置为GridView.LayoutParams而不是ViewGroup.LayoutParams 

setLayoutParams(new GridView.LayoutParams(

                    LayoutParams.WRAP_CONTENT,

                    LayoutParams.WRAP_CONTENT));

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: