GridView将图片显示在二维可移动的网格里,使用ListAdapter可以将Grid项目自动填充满整个布局。下面我们根据官方文档的例子来实现一下使用GridView,点击视图里的图片弹出图片的position的效果。

首先在main.xml文件创建下列布局。

<?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"
/>

在MainAcitivity中,因为要使用setAdapter适配器加载数据,所以要先创建一个类继承BaseAdapter

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(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show();}});
}
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 Adapterpublic View getView(int position, View convertView, ViewGroup parent) {ImageView imageView;if (convertView == null) {  // if it's not recycled, initialize some attributesimageView = 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 imagesprivate 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};
}

添加以上代码就已大功告成。 setLayoutParams(ViewGroup.LayoutParams),设置图片大小。 setScaleType(ImageView.ScaleType) 设置图片显示形式。 setPadding(int, int, int, int)设置图片的间距。如果视图传递给getView()不是null,那么使用当地的回收的convertView视图对象进行初始化。

Android开发之GridView的使用(解读谷歌官方API)相关推荐

  1. Android开发之Dialog的三种列表显示(解读谷歌官方API)

    根据谷歌的官方文档呢,我们可以有三种列表显示的关于ALertDialog api的可用:.(1)传统的单一选择列表(2)一个持久的单一选择列表(单选按钮) (3)一个持久的多项选择列表(复选框) .创 ...

  2. Android 开发之 GridView及其事件监听

    2019独角兽企业重金招聘Python工程师标准>>> 步骤: //1.准备数据源 //2.新建适配器 //3.GridView加载适配器 //4.GridView配置事件监听器 ` ...

  3. Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)

    鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio  Android Studio 是一个Android开发环境,基于Intel ...

  4. android 图库分析,Android开发之ImageSwitcher相册功能实例分析

    本文实例讲述了Android开发之ImageSwitcher相册功能.分享给大家供大家参考,具体如下: 简介: 1.ImageSwitcher是viewSwitcher的子类,所以ImageSwitc ...

  5. Android开发之仿QQ表情实现(上)

    大家晚上好,,小鹿又来了..最近小鹿特别忙,忙到没时间发表博客了(注:以下内容过于简单请大家不要喷,仅提供初学者学习) 今天发表两篇文章,分别是讲解模拟QQ表情的实现,先给大家看效果图,,,, 开始了 ...

  6. Android开发之SlidingDrawer(一)

    Android开发之SlidingDrawer(一) /* *  Android开发之SlidingDrawer *  北京Android俱乐部群:167839253 * Created on: 20 ...

  7. android studio输入框下划线,Android开发之TextView的下划线添加

    Android开发之TextView高级应用 Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大 ...

  8. android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序

    android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序   在应用里使用了后台服务,并且在通知栏推送了消息,希望点击这个消息回到activity, ...

  9. Android开发之TextView高级应用

    Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大家分享一下TextView的一些使用技巧. A ...

最新文章

  1. tomcat出现5个using_出现急性心梗,要当心5个并发症,一个都不好惹!
  2. 【干货】Linux中实用但很小众的11个炫酷终端命令
  3. iis php json文件,配置iis支持.json格式的文件
  4. 一文告诉你雾计算与云计算的区别及对物联网的价值!
  5. 栈溢出笔记1.2 覆盖EIP
  6. 【clickhouse】MergeTree引擎的固定/自适应索引粒度
  7. android平台代号、版本、API 级别和 NDK 版本
  8. 使用UrlRewriteFilter对url进行更替
  9. 【小家Java】Future与FutureTask的区别与联系
  10. 虚伪,不只是形容一个人
  11. 基于avr atmega16单片机定时器的 pwm调宽调占空比以及调频率
  12. sqlmap基本命令
  13. 【一年总结】记我的大二生活
  14. (修订)来自山区双非本科少年的秋招冒险记
  15. 服务器系统可以备份,服务器操作系统可以备份吗
  16. 高新技术企业补助政策
  17. 为什么D类音频功放可以免输出滤波器
  18. JZOJ5238【GDOI模拟】的士碰撞
  19. Android修改ro.debuggable 的四种方法
  20. android手机霍尔开关的介绍

热门文章

  1. redis api java 正则_java代码怎么正则删除redis的数据
  2. 计算机专业活动简报,计算机系辩论赛活动简报
  3. linux文件删除漏洞,OpenStack Glance v1 API任意文件删除漏洞(CVE-2012-4573)
  4. MFC消息响应函数OnPaint
  5. python中attr_python中hasattr()、getattr()、setattr()函数的使用
  6. 串口调试助手c语言程序,串口调试助手C语言源程序
  7. 本地配置文件git提交
  8. 一种轻量级的C4C业务数据同步到S/4HANA的方式:Odata通知
  9. mysql-atlas安装及使用教程
  10. 关于windows的进程处理(七)