关于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));
}
资源图片统一使用该方法(如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));
}
相关文章推荐
- 关于新建android项目时 appcompat_v7报错问题的一点总结
- 关于Android开发中JNI/NDK使用的一点总结
- 关于android来去电监控的一点总结
- Android 关于回调的一点总结
- 关于DNN Module开发学习以来的一点总结
- 关于多线程的一点总结
- 关于GridView分页的一点小问题
- vs2005中关于masterpage,Theme,skin的一点总结
- 关于PHP的i18n(国际化)的一点总结(1)----gettext部分
- 关于用CSplitterWnd分割View的一点总结
- 关于在applet中使用JDBC访问数据库的一点总结
- 关于c与汇编混合编程的一点总结
- 关于如何jar的一点总结
- 关于用CSplitterWnd分割View的一点总结
- 关于测试的一点总结
- 关于DNN Module开发学习以来的一点总结
- 今天工作中关于下拉框的一点总结
- 关于WebForm的编辑列ItemTemplate和EditItemTemplate的一点小总结
- 关于代码运行效率问题的一个总结和一点疑问
- 关于.net中修饰符的一点总结