1.GridView简介
GridView是ViewGroup子类,主要用于显示在一个二维可滚动的网格,比如九宫格。使用gridview和listview类似,都是使用ListAdapter来填充数据加载布局。
2.XML Attributes
(1).android:columnWidth
主要用来指定每一列的宽度,使用该属性时应该注意和后面的拉伸模式相关联。如果拉伸模式为spacingWidth,则该属性必须指定;如果拉伸模式为columnWidth指定该属性无效。
(2).android:gravity
用于指定每个item的对其方式起始位置,当有多个是可以使用'|'隔开
(3).android:horizontalSpacing
用于指定每一列的之间的间距。注意:如果拉伸模式为spacingWidth,则该值设定无效
(4).android:numColumns
每一列的item数目
(5).android:verticalSpacing
用于指定每一行的之间的间距。
(6).android:stretchMode(***)
如果以列间距拉伸,则不需要指定列之间的间距;如果以列的等宽度拉伸,则不需要指定列的宽度。
常量 值 描述
none
0
拉伸被禁用,不可以被拉伸
spacingWidth
1
每一列之间的间距会被拉伸,因此使用该拉伸模式时,必须指定columnWidth,而指定horizontalSpacing就会无效,即不需要先考虑horizontalSpacing
columnWidth
2
每一列是等宽度,只需要指定numColumns和horizontalSpacing,即先指定columnWidth就是无效的
spacingWidthUniform
3
每一列的间距均匀拉伸。拉伸被禁用,不可以被拉伸
3.GridView水平滚动
private GridView gridView;
private float density;
private int listSize = 10;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView = (GridView) findViewById(R.id.gridView1);
gridView.setAdapter(new MyAdapter());
// 得到像素密度
DisplayMetrics outMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
density = outMetrics.density; // 像素密度
// 根据item的数目,动态设定gridview的宽度,现假定每个item的宽度和高度均为100dp,列间距为5dp
ViewGroup.LayoutParams params = gridView.getLayoutParams();
int itemWidth = (int) (100 * density);
int spacingWidth = (int) (5*density);
params.width = itemWidth*listSize+(listSize-1)*spacingWidth;
gridView.setStretchMode(GridView.NO_STRETCH); // 设置为禁止拉伸模式
gridView.setNumColumns(listSize);
gridView.setHorizontalSpacing(spacingWidth);
gridView.setColumnWidth(itemWidth);
gridView.setLayoutParams(params);
/*
* 使用这种方式也有很大的弊端,由于动态指定了gridview的宽度,导致了gridview的所有item,getView()都会被调用,
* 如果item很大时,就不能使用这种方式了~~~
*/
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
System.out.println(position);
}
});
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="none" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<GridView
android:id="@+id/gridView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</GridView>
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/holo_green_light"
android:gravity="center"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/main_item_ad" />
</LinearLayout>
GridView是ViewGroup子类,主要用于显示在一个二维可滚动的网格,比如九宫格。使用gridview和listview类似,都是使用ListAdapter来填充数据加载布局。
2.XML Attributes
(1).android:columnWidth
主要用来指定每一列的宽度,使用该属性时应该注意和后面的拉伸模式相关联。如果拉伸模式为spacingWidth,则该属性必须指定;如果拉伸模式为columnWidth指定该属性无效。
(2).android:gravity
用于指定每个item的对其方式起始位置,当有多个是可以使用'|'隔开
(3).android:horizontalSpacing
用于指定每一列的之间的间距。注意:如果拉伸模式为spacingWidth,则该值设定无效
(4).android:numColumns
每一列的item数目
(5).android:verticalSpacing
用于指定每一行的之间的间距。
(6).android:stretchMode(***)
如果以列间距拉伸,则不需要指定列之间的间距;如果以列的等宽度拉伸,则不需要指定列的宽度。
常量 值 描述
none
0
拉伸被禁用,不可以被拉伸
spacingWidth
1
每一列之间的间距会被拉伸,因此使用该拉伸模式时,必须指定columnWidth,而指定horizontalSpacing就会无效,即不需要先考虑horizontalSpacing
columnWidth
2
每一列是等宽度,只需要指定numColumns和horizontalSpacing,即先指定columnWidth就是无效的
spacingWidthUniform
3
每一列的间距均匀拉伸。拉伸被禁用,不可以被拉伸
3.GridView水平滚动
private GridView gridView;
private float density;
private int listSize = 10;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView = (GridView) findViewById(R.id.gridView1);
gridView.setAdapter(new MyAdapter());
// 得到像素密度
DisplayMetrics outMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
density = outMetrics.density; // 像素密度
// 根据item的数目,动态设定gridview的宽度,现假定每个item的宽度和高度均为100dp,列间距为5dp
ViewGroup.LayoutParams params = gridView.getLayoutParams();
int itemWidth = (int) (100 * density);
int spacingWidth = (int) (5*density);
params.width = itemWidth*listSize+(listSize-1)*spacingWidth;
gridView.setStretchMode(GridView.NO_STRETCH); // 设置为禁止拉伸模式
gridView.setNumColumns(listSize);
gridView.setHorizontalSpacing(spacingWidth);
gridView.setColumnWidth(itemWidth);
gridView.setLayoutParams(params);
/*
* 使用这种方式也有很大的弊端,由于动态指定了gridview的宽度,导致了gridview的所有item,getView()都会被调用,
* 如果item很大时,就不能使用这种方式了~~~
*/
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
System.out.println(position);
}
});
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="none" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<GridView
android:id="@+id/gridView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</GridView>
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/holo_green_light"
android:gravity="center"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/main_item_ad" />
</LinearLayout>
发表评论
-
ScrollView嵌套Edittext
2015-04-08 18:26 786scrollview 中加入多个控件如 edittext 后会 ... -
android 布局式跑马灯,非TextView
2015-04-07 10:51 448如题,简单的实现了跑马灯效果,把Scroll.java放入an ... -
Android圆角图片
2015-03-11 17:44 646my_wane_shape.xml 快速圆角背景边框实现, ... -
SQLite多线程读写实践及常见问题总结
2015-02-13 17:06 897基本操作的部分,大家都很熟悉了,这里根据个人切身经验,总结了一 ... -
android加速度感应
2015-01-19 10:25 14321.android测量数据 (1)android设备坐标系 ... -
MatrixCursor的使用
2015-01-19 09:49 1013ContentProvider对外共享数据的时候的query( ... -
Android 获取控件的宽高高级用法(MeasureSpec)
2015-01-15 14:23 937一个MeasureSpec封装了父 ... -
Android MMS,SMS之常用Uri
2014-09-19 16:32 1289Android MMS,SMS之常用Uri Android ... -
android短彩信查询以及MMS表结构
2014-09-19 16:31 2102android短信的数据库的Uri是不公开的, 读取起来时灰常 ... -
使用Android自带DownloadManager下载文件
2014-08-19 11:04 733SDK在API Level 9中加入了DownloadMan ... -
android textview里链接点击事件,增加图片
2014-08-07 16:45 1099Android系统默认给TextView插入图片提供了三种方 ... -
android Home事件汇总
2014-07-18 11:30 963方法一:android 4.0以后无法通过更改页面的类型来 ... -
Android风格与主题(style and theme)
2014-07-16 16:35 637Android xml风格和主题文 ... -
Android中播放声音的两种方法
2014-05-30 15:09 607在Android中,音频、视 ... -
android 杀进程方法
2014-05-26 17:43 970关闭应用的方法: 1.System.exit(0); ... -
android service 生命周期
2014-04-21 16:16 736有了 Service 类我们如何启动他呢,有两种方法: ... -
解决ADB端口被占用的问题
2014-04-21 16:14 780究其源就是adb server没启动 经过分析整理如下: ... -
输入法隐藏打开
2013-12-23 14:24 763首次进入activity,如果有个edittex ... -
google经纬度互转
2013-07-11 16:34 894https://developers.google.com/ ... -
android 安装删除软件
2013-07-08 17:19 11101、 Android.mk文件 LOCAL_PA ...
相关推荐
Android_API_中文_(15)_——_GridView.doc Android_API_中文_(15)_——_GridView.doc
可拖动重排位置的gridView,android_dragdropable_gridview,category:网格(GridView)
Android ScrollView GridView
Android_ScrollView与ListView_GridView共存冲突解决方案
android gridview分页和滑动效
android_GridView,GridView的强大相信大家都知道了吧,它不仅可以存放控件,还可以自己定义布局,存放到GridView里面
android UI 中 gridview 的简单操作
android Gridview分页实现的一个小例子
C#_winform_GridView_CheckBox_多选_全选
android利用ViewPager与GridView实现左右滑动效果,类Android桌面效果,item可自动添加 http://blog.csdn.net/badboy1110/article/details/8295833
仿微信GridView动态显示本地图片,模拟向朋友圈发内容的功能
Android_API_中文GridView
Android下GridView的使用,详情参见博客:http://www.cnblogs.com/plokmju/p/android_GridView.html
android listview gridview gallery 等的综合demo
Android ScrollView+GridView左右滑动 创建时自动定位滑动到某一项以及点击按钮准确定位到某一项,附带源码,非常适合初学者。
Android GridView完美横向滑动 ,并且可限制Gridview显示行数!
ASP.NET_2.0_中的数据操作.使用_GridView_和DetailView实现的主.从报表ASP.NET_2.0_中的数据操作.使用_GridView_和DetailView实现的主.从报表
初学者的最佳开始,GridView控件添加存储SD卡图像
android_登录_注册+gridview分页