阅读更多 Android中的数据能够通过GridView类实现表格化展现,它也属于列表类型的控件,其继承关系如下:
java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.AdapterView
         ↳ android.widget.AbsListView
           ↳ android.widget.GridView
GridView控件应用案例效果如图6-10所示。
 


图6-10 GridView控件使用效果图
程序代码请参考代码清单6-8:
【代码清单6-8】 chapter6_4/src/com/work/GridView_1.java
public class GridView_1 extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.grid);GridView g = (GridView) findViewById(R.id.myGrid);g.setAdapter(new ImageAdapter(this));g.setOnItemSelectedListener(new OnItemSelectedListener() {public void onItemSelected(AdapterView<?> parent, View view,int position, long id) {Toast.makeText(GridView_1.this, "图片ID:" + mThumbIds[position],Toast.LENGTH_SHORT).show();}public void onNothingSelected(AdapterView<?> parent) {}});}private Integer[] mThumbIds = { R.drawable.yellowimage,R.drawable.redimage, R.drawable.icon, R.drawable.blueimage,R.drawable.photo1962, R.drawable.photo189, R.drawable.photo1803,R.drawable.photo1796, R.drawable.photo1732, R.drawable.photo1553,R.drawable.photo1537, R.drawable.photo1503, R.drawable.photo1453,R.drawable.photo1450, R.drawable.photo1447, R.drawable.photo1441,R.drawable.photo1433, R.drawable.photo1432, R.drawable.photo1431,R.drawable.photo1426, R.drawable.photo1425, R.drawable.photo1424,R.drawable.photo1423, R.drawable.photo1422, R.drawable.photo142,R.drawable.photo140, R.drawable.photo1220, R.drawable.photo1208,R.drawable.photo1207, R.drawable.photo101209, };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 position;}public long getItemId(int position) {return position;}public View getView(int position, View convertView, ViewGroup parent) {ImageView imageView;if (convertView == null) {imageView = new ImageView(mContext);imageView.setLayoutParams(new GridView.LayoutParams(60, 60));imageView.setPadding(8, 8, 8, 8);} else {imageView = (ImageView) convertView;}imageView.setImageResource(mThumbIds[position]);return imageView;}}}

代码的关键是实现BaseAdapter适配器类——ImageAdapter,代码如下:
public View getView(int position, View convertView, ViewGroup parent) {ImageView imageView;if (convertView == null) {imageView = new ImageView(mContext);imageView.setLayoutParams(new GridView.LayoutParams(60, 60));imageView.setPadding(8, 8, 8, 8);} else {imageView = (ImageView) convertView;}imageView.setImageResource(mThumbIds[position]);return imageView;}

在convertView为null的时候实例化控件,imageView.setLayoutParams(new GridView.LayoutParams(60, 60)是设置一个单元格中图片大小是60×60像素。imageView.setPadding(8, 8, 8, 设定GridView的单元格与其中的图片之间上、下、左、右空白。
布局文件chapter6_4/res/layout/grid.xml:
<?xml version="1.0" encoding="utf-8"?> 

android:verticalSpacing="10dp"是两行之间的边距,android:horizontalSpacing="10dp"是两列之间的边距。android:numColumns="auto_fit"GridView列数设置为自动,android:columnWidth="60dp"是每列的宽度,也就是项目的宽度。android:gravity="center"是居中。
                                                   出自《Android开发案例驱动教程》第六章
  • 大小: 39.3 KB
  • 查看图片附件

更多相关文章

  1. Android(安卓)常用布局及基本UI控件
  2. android开发 典型网站客户端
  3. popup menu案例,无说明只代码
  4. Android利用WindowManager实现悬浮窗
  5. Android(安卓)开发(六)C2DM 云端推送
  6. android 通过webservice方式向服务器上传图片
  7. Android(安卓)textview maxEms与maxLengt 属性
  8. 阅读《Android(安卓)从入门到精通》(5)——文本框视图
  9. 匿名类中this的特殊用法(class.this)

随机推荐

  1. Android 之如何优化 UI 渲染(下)
  2. Android(安卓)studio 导入github上的源码
  3. CH340与Android串口通信
  4. Android中各种Adapter的用法
  5. 推荐阅读:Android开发者的博客
  6. 写给Android开发者的ThreadLocal介绍
  7. [Android Pro] Android 手机root 并 安装
  8. Android中的ListView设置setOnItemClickL
  9. Jetpack系列之 Paging 详解
  10. GitHub最火的android 项目