Gridview 使用
本例子主要用 :
1 SimpleAdapter 作为适配器加载List<Map>数据
2 BaseAdapter 加载List<Map>数据 两种形式作为适配器加载数据
package com.example.fragmentdemo1; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; import android.widget.SimpleAdapter; import android.widget.TextView; import android.widget.Toast; /** * Gridview 使用 * 本例子主要用 : * 1 SimpleAdapter 作为适配器加载List<Map>数据 * 2 BaseAdapter 加载List<Map>数据 两种形式作为适配器加载数据 */ public class GradViewActivity extends Activity { private Integer[] resIds = { R.drawable.bd, R.drawable.qq, R.drawable.safari, R.drawable.shezhi, R.drawable.tongxunlu, R.drawable.wangyi, R.drawable.weixin, R.drawable.xj, R.drawable.yx, R.drawable.zp }; private String[] name = { "百度", "QQ", "safari", "设置", "通讯录", "网易", "微信", "相机", "游戏", "照片" }; private ArrayList<HashMap<String, Object>> item;// 数据 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.griditeminfo); //显示简单的图片列表 // showSimpleGrad(); showBaseAdapterGrad(); } /** * 显示grid列表 ,用SimpleAdapter 作为适配器 */ private void showSimpleGrad() { getData() ;//准备数据 GridView gridview = (GridView) findViewById( R.id.gridview); // SimpleAdapter对象,匹配ArrayList中的元素 SimpleAdapter simpleAdapter = new SimpleAdapter(this, item, //数据来源 R.layout.gridview, //每一个格子中的布局加载 new String[] { "itemImage", "itemName" }, //每一个方格中列的名字,它会与Map中的key相对应 new int[] { R.id.itemImage, R.id.itemName }) {//对应着上面参数给的值 }; //添加并且显示 gridview.setAdapter(simpleAdapter); //添加消息处理 gridview.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //parent.getItemAtPosition( ) Log.v("gradView", (String)item.get(position ).get("itemName")) ; Toast.makeText(getApplicationContext(),(String) item.get(position ).get("itemName"),Toast.LENGTH_SHORT).show(); } }); } // 准备数据 public void getData() { item = new ArrayList<HashMap<String, Object>>(); for (int i = 0; i < resIds.length; i++) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("itemImage", resIds[i]); map.put("itemName", name[i]); item.add(map); } } //使用BaseAdapter private void showBaseAdapterGrad() { getData() ;//准备数据 GridView gridview = (GridView) findViewById( R.id.gridview); ImageAdapter adapter = new ImageAdapter(this); //添加并且显示 gridview.setAdapter(adapter); //添加消息处理 gridview.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //parent.getItemAtPosition( ) 取出 相应的数据 Log.v("gradView", (String)item.get(position ).get("itemName")) ; Toast.makeText(getApplicationContext(),(String) item.get(position ).get("itemName"),Toast.LENGTH_SHORT).show(); } }); } //用BaseAdapter 用作adapter private class ImageAdapter extends BaseAdapter{ private LayoutInflater mInflater;// 得到一个LayoutInfalter对象用来导入布局 //private Context mContext; public ImageAdapter(Context context) { //this.mContext=context; this.mInflater = LayoutInflater.from(context); } @Override public int getCount() { return resIds.length; } @Override public Object getItem(int position) { return resIds[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里 convertView = mInflater.inflate(R.layout.gridview, null); ImageView imageView = (ImageView) convertView.findViewById( R.id.itemImage); TextView textView = (TextView) convertView.findViewById( R.id.itemName); Log.v("GridView", "加载GridView:getView 1=="+position ); imageView.setImageResource((Integer)item.get(position ).get("itemImage")); textView.setText( (String)item.get(position ).get("itemName")); Log.v("GridView", "加载GridView:getView 2"); // 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 convertView; } } }
2 gridView的布局
<?xml version = "1.0" encoding = "utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingTop="20dp"> <GridView android:id="@+id/gridview" android:layout_width="match_parent" android:layout_height="match_parent" android:columnWidth="90dp" android:numColumns="auto_fit" android:stretchMode="columnWidth" android:horizontalSpacing="10dp"> </GridView> </LinearLayout>
3 每个方格中加载的数据的控件布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" > <ImageView android:id="@+id/itemImage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" > </ImageView> <TextView android:id="@+id/itemName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/itemImage" android:layout_centerHorizontal="true" > </TextView> </RelativeLayout>
4 附件中是使用到的图片
相关推荐
1. 打开设计视图,在工具箱中找到“GridView”控件并将其拖放到网页上。 2. 在属性窗口中配置GridView控件的属性,如ID、Width等。 三、数据绑定 GridView控件需要与数据源绑定才能显示数据。常见的数据源有...
本实例源代码将深入探讨如何使用GridView控件,通过实际操作来理解其核心概念和用法。 首先,GridView控件的基本使用涉及到以下几个步骤: 1. **创建数据源**:在使用GridView之前,需要有一个数据源,这可以是SQL...
### GridView控件使用知识点 #### 实验目的与背景 本实验旨在通过具体操作,帮助学习者深入了解和掌握ASP.NET中的GridView控件。GridView是ASP.NET中一个非常实用且功能强大的服务器控件,它用于在Web应用程序中以...
3. **自定义分页逻辑**:在分页按钮点击事件中,计算出当前页的数据范围,更新GridView的数据源,并确保视图状态得到正确维护。 4. **界面交互设计**:在前端展示过滤和分页选项,确保用户界面友好且易于操作。 5....
6. **用户界面(UI)层的集成**:在`AlertSearch.aspx`页面中,我们将自定义的GridView控件拖放到设计视图中,并设置其属性,如数据源ID、分页设置等。通过这种方式,我们可以在UI层直接使用这个控件,而无需关心...
### C#网格视图控件GridView的方法 #### 网格视图控件GridView简介 在C#开发中,尤其是在Windows Forms应用开发中,GridView 控件是一种常用的展示数据的方式,它能够有效地展示表格形式的数据,并支持多种交互...
在提供的压缩包"Koko_ASP.NET初级_GridView控件和FormView控件"中,你可能找到一个示例项目,展示了如何在实际开发中使用这两种控件。通过研究这个例子,你可以学习如何设置控件属性,编写事件处理程序,以及如何在...
在本教程中,我们将深入探讨GridView控件的核心功能和使用技巧,帮助你快速掌握这一强大的数据呈现工具。 一、GridView概述 GridView控件主要设计用于Web开发,特别是在ASP.NET环境中,它可以显示和编辑表格形式的...
综上所述,Android的GridView布局控件是一个强大的工具,通过合理的配置和适配器的使用,可以创建出丰富多彩的网格视图。在实际开发中,我们需要根据具体需求进行优化,确保良好的用户体验和性能表现。
GridView控件是Android开发中常用的一种布局管理器,主要用于展示数据集,比如图片、列表项等,以网格的形式排列。它的灵活性和可定制性使得它在各种应用中都非常受欢迎。这个压缩包文件“精致的GridView控件源码”...
1. **添加GridView控件**:在ASP.NET页面的Design视图中,通过工具箱选择GridView控件拖放到设计画布上,或在代码视图中添加`<asp:GridView>`标签。 2. **数据绑定**:GridView控件的数据源可以是各种类型,如...
在本教程中,我们将深入探讨如何实现一个基本的GridView视图,并通过实际示例进行演示。 首先,我们需要在布局XML文件中添加GridView组件。在`res/layout`目录下创建一个新的布局文件,例如`grid_view.xml`,然后...
在Android开发中,GridView是一种常用的布局控件,它允许开发者以网格的形式展示数据。这个“功能强大自定义GridView控件全源码”很显然是一个专为Android开发者设计的开源项目,旨在提供一种更加灵活、可定制化的...
- 添加GridView:在ASP.NET页面中,可以通过拖放工具箱中的GridView控件到设计视图,或者在代码中手动创建并添加到页面控件集合。 - 绑定数据源:GridView需要一个数据源来填充其行和列。这可以是任何支持数据绑定...
本实验主要针对面向对象编程课程,通过GridView控件的使用,帮助学生深入理解数据绑定、数据操作以及用户交互的基本概念。 一、GridView概述 GridView控件是ASP.NET Web Forms中的一员,它允许开发者以表格的形式...
GridView是ASP.NET Web Forms中非常常见且强大的数据展示控件,尤其在处理表格数据时,它的功能强大且易于使用。这个“GridView分页控件(项目例子)”应该是提供了使用纯.NET Framework 2.0实现的GridView分页功能...
首先,在设计视图或代码视图中添加GridView控件,并为其指定数据源。可以通过`DataSourceID`属性绑定到一个数据源控件,或者在`RowDataBound`事件中动态绑定数据。 2. **设置列宽度**: 超长字符的显示问题通常与...
- 直接在设计视图中添加GridView控件,或者通过代码创建。 - 设置`DataSourceID`以连接到数据源控件。 2. 数据绑定: - 使用`AutoGenerateColumns`属性,自动根据数据源字段创建列。 - 或者通过`Columns`集合...
总的来说,实现自定义`GridView`拖动控件排序移动`TextView`的功能,涉及到自定义适配器、拖放监听、视图动画以及数据源的同步更新等多个方面,需要对Android UI组件和事件处理有深入的理解。通过以上步骤,你可以在...