关于android中gridview的一点总结

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));

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值