GridView
is a ViewGroup
that displays items in a
two-dimensional,
scrollable grid.(这里GroidView作为一个View容器,负责二维显示view控件,和ListView类似),下面通过对Android帮助文档的例子作修改后所完成的效果:
http://xiaolongque.iteye.com/picture/92946
<在显示图片的同时显示文字>
例子中这丑狗的图片可从下载http://developer.android.com/shareables/sample_images.zip
好的,首先我们先把图片保存到res/drawable文件夹中
定义以下两个布局文件
<?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="90dip"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView android:id="@+id/iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="test"
/>
</LinearLayout>
其中child.xml中定义GridView中每一点的子控件内容
Activity如下:
package com.xl;
/*
* author by Que
*/
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
public class HelloGridView extends Activity {
private GridView gridView ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gridView = (GridView)findViewById(R.id.gridview);
NewAdapter adapter = new NewAdapter(HelloGridView.this);
gridView.setAdapter(adapter);
}
public class NewAdapter extends BaseAdapter{
public final class ViewHolder{
ImageView img;
TextView text1;
}
private LayoutInflater layout = null;
public NewAdapter(Context context) { //获取上下文对象
this.layout = LayoutInflater.from(context);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mThumbIds.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder ;
if(convertView == null) {
holder = new ViewHolder();
convertView = layout.inflate(R.layout.child, null);
holder.img = (ImageView)convertView.findViewById(R.id.iv);
holder.text1 = (TextView)convertView.findViewById(R.id.tv);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
holder.img.setImageResource(mThumbIds[position]);
//holder.img.setLayoutParams(new GridView.LayoutParams(85,85));
holder.img.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
holder.img.setPadding(8, 8, 8, 8);
return convertView;
}
private final 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
};
}
}
通过继承BaseAdapter,根据getCount来调用getView对数据进行一一映射。其中
convertView = layout.inflate(R.layout.child, null);
holder.img = (ImageView)convertView.findViewById(R.id.iv);
holder.text1 = (TextView)convertView.findViewById(R.id.tv);
Inflate a new view hierarchy from the specified xml resource.(从一个xml布局文件中获取view层次结构并赋予convertView,通过convertView来实例化ImageView和TextView组件。由此我们可以在里面对布局文件中所包含的所有控件进程初始化处理,如设置事件监听。
分享到:
相关推荐
### GridView的使用方法详解 #### 一、GridView无代码分页与排序 在ASP.NET中,GridView 控件是一个非常强大的工具,它可以帮助开发者快速地在网页上展示数据,并且提供了许多内置的功能,如分页、排序等。无代码...
Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview...
以上就是GridView控件的一些经典用法,掌握这些技巧将极大地提升你在开发Web应用时的数据展示和交互能力。在实际项目中,可以根据需求灵活运用这些功能,以创建出美观且功能丰富的数据展示界面。
GridView通过`DataSource`属性与数据源关联,使用`DataBind()`方法将数据加载到控件中。可以使用`SelectCommand`属性配合SqlDataSource或ObjectDataSource进行数据检索。 3. **字段配置**: GridView的字段由`...
在本文中,我们将深入探讨GridView的使用技巧、大全、常见问题以及常用方法,旨在帮助开发者更好地理解和应用这一强大的工具。 1. GridView简介: GridView控件允许用户以表格的形式显示数据,通常与数据源(如...
在本教程中,我们将深入探讨GridView的全部用法,包括但不限于布局设置、适配器的使用、自定义项以及事件监听。 1. GridView基本结构 GridView是一个二维的列表,它的每一行具有相同的列数。在XML布局文件中,我们...
在本项目中,我们探讨的主题是“GridView内嵌套使用GridView”,这通常是为了实现更复杂的数据显示,例如,当数据有层次关系时,可以通过内嵌套的方式展现这些层次结构。 在Visual Studio 2005环境下,开发人员可以...
本教程将详细讲解Android中的GridView及其使用方法。 1. GridView简介: GridView继承自ViewGroup,它会把子视图按照指定的列数进行排列,形成一个可滚动的网格视图。每个子视图可以是ImageView、TextView或其他...
Gridview控件用法Demo 1:语言:ASP.NET(C#) 运行环境:Visual Studio2005+Access 2:功能模块简介 a)Gridview表头表尾; b)实现Gridview数据与Excel互导; c)Gridview多层嵌套的应用; d)Gridview分页排序功能的...
本篇文章将详细阐述GridView的使用方法,包括基本配置、数据绑定、事件处理、自定义样式以及一些高级特性。 首先,GridView的基本配置涉及控件的初始化和属性设置。在ASP.NET页面的HTML部分,我们需要声明一个...
在本篇中,我们将深入探讨Java GridView的使用方法,特别针对Android平台。 1. **GridView的布局** 在Android开发中,GridView是`android.widget.GridView`类的一部分。首先,我们需要在XML布局文件中添加GridView...
在.NET框架中,DataGridView和GridView是两种常用的控件,用于显示和操作表格数据。它们都是Windows Forms和ASP.NET环境中处理数据的重要组件。虽然两者在视觉上相似,但它们的应用场景和功能有所不同。以下是对这两...
这篇大总结将深入探讨GridView的基本概念、使用方式、自定义以及在实际应用中的优化策略。 一、GridView基本概念 GridView是一种视图组件,它允许开发者以二维网格的形式显示数据集合。每个网格单元称为一个item,...
这篇文档将深入讲解GridView的使用方法,包括基本配置、数据绑定、自定义适配器、事件处理等方面。 一、GridView的基本使用 1. 布局文件配置:在XML布局文件中,我们需要添加GridView标签,并设置其属性。例如,`...
### 一、基本使用方法 在使用AspxGridView前,需要先导入必要的DLL文件,并在Asp.Net页面中注册控件。控件声明后,可以删除licenses.licx文件,但请注意这可能涉及到版权问题。功能概述包括控件的各种功能和操作。 ...
本在做项目过程中,使用了在网上查的一些关于gridview的用法。很好,所以推荐给大家.
- **核心知识点**:本节提供了一种仅使用CSS来实现Gridview固定表头的方法。 - **详细说明**:通过CSS定位属性(如position: sticky)来固定表头,无需额外的JavaScript脚本。 #### 16. GridView合并表头多重表头无...
以下是对给定内容中涉及的C# GridView用法技巧的详细解释: 1. **无代码分页排序**: - `AllowSorting` 属性设置为 `True`,允许用户通过点击列头进行排序。 - `PageSize` 属性设定每页显示的数据条数,例如 `...
对于动态数据源,可以使用DataBind()方法手动进行数据绑定。 其次, GridView的列配置是关键。通过Columns集合,我们可以添加BoundField(文本字段)、TemplateField(模板字段)等,以显示不同类型的数据显示。...