- 浏览: 19635 次
- 性别:
- 来自: 北京
最新评论
网格布局:是一个ViewGroup以网格显示它的子视图(view)元素,即二维的、滚动的网格。网格元素通过ListAdapter自动插入到网格。ListAdapter跟上面的列表布局是一样的,这里就不重复累述了。
下面也通过一个例子来,创建一个显示图片缩略图的网格。当一个元素被选择时,显示该元素在列表中的位置的消息。
1)、首先,将上面实践截取的图片放入res/drawable/
2)、res/layour/main.xml的内容置为如下:这个GridView填满整个屏幕,而且它的属性都很好理解,按英文单词的意思就对了。
<?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:columnWidth="90dp" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:stretchMode="columnWidth" android:gravity="center" /> 3)、然后,HelloWorld.java文件中onCreate()函数如下: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(new ImageAdapter(this)); gridview.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Toast.makeText(HelloWorld.this, " " + position, Toast.LENGTH_SHORT).show(); } }); } onCreate()函数跟通常一样,首先调用超类的onCreate()函数函数,然后通过setContentView()为活动 (Activity)加载布局文件。紧接着是,通过GridView的id获取布局文件中的gridview,然后调用它的 setListAdapter(ListAdapter)函数填充它,它的参数是一个我们自定义的ImageAdapter。后面的工作跟列表布局中一 样,为监听网格中的元素被点击的事件而做的工作。 4)、实现我们自定义ImageAdapter,新添加一个类文件,它的代码如下: package com.javaeye.bywyu; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; public class ImageAdapter extends BaseAdapter { private Context mContext; public ImageAdapter(Context c) { mContext = c; } public int getCount() { return mThumbIds.length; } public Object getItem(int position) { return null; } public long getItemId(int position) { return 0; } // create a new ImageView for each item referenced by the Adapter public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { // if it's not recycled, initialize some attributes imageView = new ImageView(mContext); imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setPadding(8, 8, 8, 8); } else { imageView = (ImageView) convertView; } imageView.setImageResource(mThumbIds[position]); return imageView; } // references to our images private Integer[] mThumbIds = { R.drawable.linearlayout1, R.drawable.linearlayout2, R.drawable.linearlayout3, R.drawable.listview, R.drawable.relativelayout, R.drawable.tablelayout }; } ImageAdapter类扩展自BaseAdapter,所以首先得实现它所要求必须实现的方法。构造函数和getcount()函数很好理解,而 getItem(int)应该返回实际对象在适配器中的特定位置,但是这里我们不需要。类似地,getItemId(int)应该返回元素的行号,但是这 里也不需要。 这里重点要介绍的是getView()方法,它为每个要添加到ImageAdapter的图片都创建了一个新的View。当调用这个方法时,一个View是循环再用的,因此要确认对象是否为空。如果是空的话,一个ImageView就被实例化且配置想要的显示属性: * setLayoutParams(ViewGroup.LayoutParams):设置View的高度和宽度,这确保不管drawable中图片的大小,每个图片都被重新设置大小且剪裁以适应这些尺寸。 * setScaleType(ImageView.ScaleType):声明图片应该向中心剪裁(如果需要的话)。 * setPadding(int, int, int, int):定义补距,如果图片有不同的横纵比,小的补距将导致更多的剪裁以适合设置的ImageView的高度和宽度。 如果View传到getView()不是空的,则本地的ImageView初始化时将循环再用View对象。在getView()方法末尾,position整数传入setImageResource()方法以从mThumbIds数组中选择图片。
发表评论
-
服务--Service
2010-09-26 16:07 743Android中的服务和windows ... -
广播接收者(BroadcastReceiver)
2010-09-26 16:05 934广播接收者(BroadcastReceiver) 用于异步接收 ... -
如何安装 Android SDK 和Eclipse 插件
2010-09-21 23:50 2016所需开发环境: JDK 5 或 JDK 6 (仅有JR ... -
Android Service 生命周期
2010-09-19 13:33 1684Android Service 生命周期可以促使移动设备的创新 ... -
Android平台——Binder机制
2010-09-19 12:44 1318由代码来补充部分: in ... -
Timer和TimerTask详解
2010-09-19 11:09 9141.概览 Timer是一种定时器工具,用来在一个后台线程 ... -
TelephonyManager常用方法
2010-09-19 09:51 1861通过TelephonyManager可以取得手机电信网络的信息 ... -
getSystemService
2010-09-19 09:39 1241getSystemService是Android很 ... -
反编译Android apk文件
2010-09-17 16:02 943找到Android软件安装包中的class.dex: ... -
SharedPreferences
2010-09-17 15:04 955SharedPreferences 是以键值对来存储应用程序 ... -
Only the original thread that created a view hierarchy can touch its views<已解决>
2010-09-16 17:32 1943子线程不可以 更新UI主线程 new Thread() { ...
相关推荐
GridView Grid View 翻页 GridView翻页 用户控件自定义翻页 |<< << 1 2 3 4 5 >> >>| 总页:T 当前:N M件
export grid view pdf image. export grid view pdf image.
因为大多数时候都上不了google,保存下来以便之后学习使用
jQuery grid view plugin - jQuery表格插件
Sample grid view in c#.zip
Freezing ASP.Net Grid View Header With JavaScript and CSS.
实现网格化的视图(grid view)。一个主视图里面包含多个子视图,每个子视图是一个网格,用户可以添加、删除、拖动、排列每个网格。 注意:请在Mac下解压使用
来源:Licence:Custom... 实现动态翻页切换内容的网格化视图(Grid View)效果。界面上有多个网格子视图,每个网格子视图都可以自动翻页切换页面从而改变内容。 Code4App编译测试,适用环境:Xcode 4.5, iOS 6.0。
动态生成GridView,非常实用,特别是用于打印GridView信息用作的双GridView,导出
合并单元格,里面有demo和源码,具体使用可以查看demo
gridview与listview的整合 不用再去一个一个去找了 里面有经常用的类型。
以滑动的方式动态刷新Grid View或者Table View的内容。具体来说,对于Grid View(网格视图)的每个子视图的内容,新内容从上往下移动代替旧内容;对于Table View(表格)的每一行单元格(Cell),新内容从左往右...
AndroidCoolDragAndDropGridView 非常好用,列可拖动的GridView.
Unity3D 超好用插件,Grid 绘制多边形网格,多用于2D 二维屏幕
什么是Google Meet Grid View? 添加一个切换以在Google Meet中使用网格布局。 Google Meet的Grid View允许添加一个按钮以使用Google Meet中的网格布局。 Google Meet的Grid View在右上栏(聊天和参与者列表旁边)...
Google Meet的Grid View在右上栏(聊天和参与者列表旁边)添加了一个按钮,以在Google Meet中启用网格视图。 网格视图为每个参与者提供了大小相等的视频,供没有主要发言者的会议中使用(例如在家庭无声会议中工作)...
#资源达人分享计划#
androidgridheader Android Grid View Header 实现 这是 GridView 头项目。
来源:Licence:MIT平台:... 实现网格化的视图(grid view)。一个主视图里面包含多个子视图,每个子视图是一个网格,用户可以添加、删除、拖动、排列每个网格。 Code4App编译测试,适用环境:Xcode 4.3, iOS 5.0。