专栏首页飞雪无情的博客Android GridView组件的使用

Android GridView组件的使用

GridView是一个网络布局的视图,他能让你的元素显示在一个个的格子里。我们的桌面就是一个GridView。。

  1. 新建一个HelloGridView的工程
  2. 修改main.xml代码如下: <?xml version=“1.0” encoding=“utf-8”?>

很简单,就是一个GridView。设置列宽为90dp,这样当我们的numColumns设置为auto_fit时,Android就会自动计算我们手机屏幕的大小以决定每一行展示几个元素。这是很方便。android:horizontalSpacing定义列之间的间隔,android:verticalSpacing定义行之间的间隔。android:stretchMode设置为columnWidth是意味着根据列宽自动缩放。

  1. 修改我们Activity HelloGridView如下: /**
    • @author 飞雪无情
    • @since 2011-1-20 */ public class HelloGridView extends Activity { /** Called when the activity is first created. */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); GridView gridView=(GridView)findViewById(R.id.gridview); gridView.setAdapter(new ImageAdapter(this)); //单击GridView元素的响应 gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<!--?--> parent, View view, int position, long id) { //弹出单击的GridView元素的位置 Toast.makeText(HelloGridView.this,mThumbIds[position], Toast.LENGTH_SHORT).show(); } }); } private class ImageAdapter extends BaseAdapter{ private Context mContext; public ImageAdapter(Context context) { this.mContext=context; } @Override public int getCount() { return mThumbIds.length; } @Override public Object getItem(int position) { return mThumbIds[position]; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { //定义一个ImageView,显示在GridView里 ImageView imageView; if(convertView==null){ 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; } } //展示图片 private Integer[] mThumbIds = { R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7, R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7, R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7 }; }

这里我们也是采用的自定义Adapter,可以上一节的自定义Adapter讲解。展示了一些图片,然后点击一个图片的时候会显示这个图片所在的位置。

  1. 运行程序,效果图如下:

本文附件下载:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Go语言生成二维码是如此简单

    二维码作为一种快速的输入手段越来越流行,支付,添加好友,买东西,扫个二维码就可以,非常方便。那么二维码是如何制作生成的呢?我们如何制作自己的二维码呢?

    飞雪无情
  • Android Activity的生命周期

    通过上一节“Android系列之四:Android项目的目录结构”我们已经知道了什么是Activity,那么为什么我们创建一个Activity的导出类的时候为什...

    飞雪无情
  • Android 源码目录结构详解

    这是Android2.1的源代码的目录结构,可以帮助我们研究Android的源代码。Android源代码的下载请参考官网

    飞雪无情
  • 使用nginx代理跨域,使用nginx代理bing的每日一图

    前言 自从搞清楚了跨域原理后一直自鸣得意,感觉跨域没啥问题了。而事实上对关于跨域的几个header的理解也有限,但那又如何,我能做到跨域就行了。今天想把博客背...

    Ryan-Miao
  • (15/24) 为webpack增加babel支持

    Babel是什么? Babel是一个编译JavaScript的平台,它的强大之处表现在可以通过编译达到以下目的:

    wfaceboss
  • 更改TabLayout选中的背景色

    项目中有这种需求,google了下发现了解决方案,摘录如下方便大家排查. 原文链接

    夏洛克的猫
  • JS中isPrototypeOf 和hasOwnProperty 的区别

    大当家
  • 基础网络设施成为云计算的最大弱点?

    无论你选择软件即服务、平台即服务或者是基础架构即服务,有一件事是不能避免的:你需要一个良好的、可靠的网络连接到云。自从云彻底改变了网络的作用及相关的硬件和软件,...

    静一
  • 简单&基础shell操作_转发分享

    柴银磊
  • 条件注解,Spring Boot 的基石!

    Spring4 中提供了更加通用的条件注解,让我们可以在满足不同条件时创建不同的 Bean,这种配置方式在 Spring Boot 中得到了广泛的使用,大量的自...

    江南一点雨

扫码关注云+社区

领取腾讯云代金券