`
byandby
  • 浏览: 1696412 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android 网格视图(GridView)

阅读更多
   GridView的视图排列方式与矩阵类似,当屏幕上有很多元素(文字、图片或其他元素)需要显示时,可以使用GirdView。既然有多个元素要显示,就需要使用BaseAdapter来存储这些元素。用户可能会选择其中一个元素进行操作,这就需要设置事件监听 setOnItemClickListener来捕捉和处理事件。 我们先来看看运行效果吧。



ImageAdapter类
package xiaohang.zhimeng;

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{

	//定义Context
	private Context mContext;
	//定义整型数组 即图片源
	private Integer[] mImageIds = 
	{
		R.drawable.img1,
		R.drawable.img2,
		R.drawable.img3,
		R.drawable.img4,
		R.drawable.img5,
		R.drawable.img6,
		R.drawable.img7,
		R.drawable.img8,
	};
	
	public ImageAdapter(Context c){
		mContext = c;
	}
	
	//获取图片个数
	public int getCount() {
		return mImageIds.length;
	}
	//获取图片在库中的位置
	public Object getItem(int position) {
		return position;
	}
	//获取图片ID
	public long getItemId(int position) {
		return position;
	}

	public View getView(int position, View convertView, ViewGroup parent) {
		ImageView imageView;
		if (convertView == null ) {
			//给ImageView设置资源
			imageView = new ImageView(mContext);
			//设置布局 图片120*120显示
			imageView.setLayoutParams(new GridView.LayoutParams(85,85));
			//设置显示比例类型
			imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
		}
		else {
			imageView = (ImageView) convertView;
		}
		imageView.setImageResource(mImageIds[position]);
		return imageView;
	}
}

Activity类
package xiaohang.zhimeng;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class Activity01 extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //获取GridView对象
        GridView gridview = (GridView) findViewById(R.id.gridview);
        //添加元素给gridview
        gridview.setAdapter(new ImageAdapter(this));
        
        //设置Gallery背景
        gridview.setBackgroundResource(R.drawable.bg0);
        
        //事件监听
        gridview.setOnItemClickListener(new OnItemClickListener(){
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				//此处的position为ID 所以要+1
				Toast.makeText(Activity01.this, "你选择了"+ (position + 1) + "号图片", Toast.LENGTH_SHORT).show();
			}
        });
    }
}


布局文件
<?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:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:columnWidth="90dp"
android:stretchMode="columnWidth"
android:gravity="center"
    >
<!--
属性说明
android:numColumns="auto_fit" GridView的列数设置为自动
android:columnWidth="90dp",每列的宽度,也就是Item的宽度
android:stretMode="columnWidth" 缩放与列宽大小同步
android:verticalSpacing="10dp" 两行之间的边距
android:horizontalSpacing="10dp" 两列之间的边距
-->
</GridView>

源码和图片 见附件
  • 大小: 62.1 KB
分享到:
评论

相关推荐

    Android网格视图GridView的使用

    在Android开发中,GridView是一个非常实用的控件,它能够以网格的形式展示数据,通常用于显示多行多列的内容,例如图片、应用图标等。在本文中,我们将深入探讨GridView的使用方法及其主要属性。 首先, GridView的...

    Android网格视图(GridView)

    以下是对标题和描述中提及的Android网格视图(GridView)相关知识点的详细解释: 1. **android:numColumns**:“auto_fit”或具体数字:这个属性决定了GridView的列数。当设置为“auto_fit”时,系统会根据可用空间...

    智能家居系统 网格视图GridView.doc

    在计算机科学领域,尤其是移动应用开发中,"智能家居系统 网格视图 GridView.doc" 提到的主题聚焦于Android开发中的一个关键组件——GridView。GridView是一种布局管理器,常用于展示大量相同类型的数据项,以网格的...

    Android程序技术:网格视图.pptx

    Android 程序技术 ...网格视图GridView 网格视图GridView GridView支持的XML属性如表5所示: 高级控件-网格视图 Advanced controls - Grid view 属 性 描 述 android:columnWidth 用于设置列的宽度 android:gravi

    android ViewFlipper + Gridview 实现网格视图由上向下自动滑动效果

    在本示例中,"android ViewFlipper + Gridview 实现网格视图由上向下自动滑动效果"的目标是构建一个动态的、自滚动的网格视图,这种效果常见于广告轮播或者产品展示等场景。 ViewFlipper是Android SDK提供的一种...

    Android网格视图

    这个"Android网格视图"主题涉及的知识点主要包括以下几个方面: 1. **GridView基本概念**: GridView是Android SDK中的一个控件,继承自AbsListView,它可以将数据集以多行多列的网格形式呈现。每个单元格可以包含...

    网格视图GridView

    网格视图(GridView)是Android开发中常用的一种布局方式,它允许我们以网格的形式展示数据。在本项目中,我们看到的主题是模仿人人网主界面,这表明GridView将被用来呈现类似社交网络上的多列、多行的内容,如好友...

    C#网格视图控件GridView的方法

    ### C#网格视图控件GridView的方法 #### 网格视图控件GridView简介 在C#开发中,尤其是在Windows Forms应用开发中,GridView 控件是一种常用的展示数据的方式,它能够有效地展示表格形式的数据,并支持多种交互...

    android GridView 添加图片

    在Android开发中,GridView是一种非常常见的布局控件,它允许我们以网格的形式展示数据,通常用于显示多张图片、图标或者其他元素。在这个场景下,"android GridView 添加图片"的主题涉及了如何在GridView中加载和...

    Android中利用ListView和GridView实现列表视图和网格(图标)视图的相互切换显示

    2. **GridView**:则以网格形式展示数据,每行可以有多个列,适合展示图标或者小图片的列表,如应用列表或照片墙。 要实现这两种视图的切换,我们需要以下步骤: **步骤1:创建布局** 为ListView和GridView创建两...

    android Gridview分页实现

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。当我们处理大量数据时,分页加载可以提高应用性能,减少内存消耗,并提供更好的用户体验。本篇文章将详细讲解如何在Android中利用...

    列表嵌套网格视图GridView

    通过以上解释,我们可以看到,"列表嵌套网格视图GridView"是一个解决特定展示需求的Android编程技术,它结合了ListView和GridView的优点,为用户提供了丰富的界面展示效果。如果你在开发过程中遇到类似的场景,可以...

    Android之GridView视图实现

    你可以运行应用,看到一个包含图片和文字的网格视图。当然,这只是一个基础示例,实际应用中可能需要处理更多复杂情况,比如点击事件、动态加载数据、自定义动画等。 在进一步优化GridView时,还可以考虑使用...

    Android高仿支付宝gridview网格布局

    在Android开发中,为了实现类似支付宝应用中的网格布局效果,我们可以使用自定义的GridView或者RecyclerView。这个主题将深入探讨如何创建一个高效的、可定制的网格布局,以达到支付宝应用的用户体验。 首先,让...

    android ListView 网格布局

    由于标题提到的是“ListView的网格视图”,我们将主要讨论使用GridView的情况。GridView是一个二维的列表视图,可以设置每行的列数,从而达到网格效果。 以下是一步一步实现这个功能的过程: 1. 创建布局文件:...

    Android网格布局GridView学习使用

    Android网格布局GridView是一种常用的视图组件,用于把一系列的控件组织成二维网格的形式显示出来。GridView控件广泛应用于图片的组合显示,例如相片管理的应用。在本文中,我们将详细介绍Android网格布局GridView的...

    android 自定义控件 GridView

    GridView作为一种常见的布局控件,通常用于展示网格状的数据,如图片、列表项等。在本主题中,我们将深入探讨如何创建两个可相互拖拉的自定义GridView控件,实现数据交互。 首先,了解GridView的基本用法。GridView...

    iOS GridView 网格视图

    在iOS开发中,GridView是一种常见的布局方式,它类似于Android中的GridView或者Web开发中的CSS Grid,可以灵活地展示多行多列的数据。这种视图通常用于显示不确定行数和列数的信息,比如图片、图标或者简单的文字...

Global site tag (gtag.js) - Google Analytics