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的使用方法 GridView的使用方法 GridView的使用方法
Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview用法大全Gridview...
GridView空间中的各种使用方法,包括GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠标移到GridView某一行时改变该行...
Gridview用法大总结Gridview用法大总结Gridview用法大总结Gridview用法大总结Gridview用法大总结
DataGridView和GridView常用用法,囊括了DataGridView和GridView大多数的用法,上传以备后用。
gridview使用技巧、gridview使用大全、gridview常用问题、gridview常用方法 共12文件 长期收集的 绝对有用
java gridview使用方法
GridView全部用法实例详解,里面包括所有用法的实例,很详细的哦.....
Gridview控件用法Demo 1:语言:ASP.NET(C#) 运行环境:Visual Studio2005+Access 2:功能模块简介 a)Gridview表头表尾; b)实现Gridview数据与Excel互导; c)Gridview多层嵌套的应用; d)Gridview分页排序功能的...
gridview的用法
一个GridView控件用法大全,里面不仅包含了全面的例子都还有相应源代码,欢迎大家下载学习。
这里给您讲解了如何使用GridView控件实现网页的美化和数据的显示
vb.net DataGridView控件用法,.net DataGridView控件用法,GridView用法
gridview 使用方法总结 ,在不同情况下,gridview的使用模式各不相同,这里总结了一部分,希望对你有所帮助
gridview嵌套.txt gridview用法大全.doc
android GridView 示例用法
GridView使用方法GridView使用方法GridView使用方法GridView使用方法GridView使用方法GridView使用方法GridView使用方法GridView使用方法GridView使用方法GridView使用方法
本在做项目过程中,使用了在网上查的一些关于gridview的用法。很好,所以推荐给大家.
C# GridView 用法技巧资料整合
DevExpress_ASPxGridView_使用方法汇总