main.xml:
<?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"> <GridView android:id="@+id/myGridView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:numColumns="3" android:stretchMode="columnWidth"/> </LinearLayout>
grid_layout.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#000000"> <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="center" android:padding="3px"/> </LinearLayout>
show_img.xml:
<?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/showImg" android:layout_width="fill_parent" android:layout_height="fill_parent"/> </LinearLayout>
MyGridViewDemo.java:
import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Gallery.LayoutParams; import android.widget.GridView; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.SimpleAdapter; public class MyGridViewDemo extends Activity { private List<Map<String,Integer>> list = new ArrayList<Map<String,Integer>>() ; private SimpleAdapter simpleAdapter = null; // 适配器 private GridView myGridView = null ; // GridView组件 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.main); // 调用布局管理器 this.myGridView = (GridView) super.findViewById(R.id.myGridView) ; // 取得组件 this.initAdapter() ; // 初始化适配器 this.myGridView.setAdapter(this.simpleAdapter) ; // 设置图片 this.myGridView.setOnItemClickListener(new OnItemClickListenerImpl()) ; } private class OnItemClickListenerImpl implements OnItemClickListener { @SuppressWarnings("unchecked") @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // 选项单击事件 ImageView showImg = new ImageView(MyGridViewDemo.this); // 定义图片组件 showImg.setScaleType(ImageView.ScaleType.CENTER); // 居中显示 showImg.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); // 布局参数 Map<String, Integer> map = (Map<String, Integer>) MyGridViewDemo .this.simpleAdapter.getItem(position); // 取出Map showImg.setImageResource(map.get("img")); // 设置显示图片 Dialog dialog = new AlertDialog.Builder(MyGridViewDemo.this) // 创建Dialog .setIcon(R.drawable.pic_m) // 设置显示图片 .setTitle("查看图片") // 设置标题 .setView(showImg) // 设置组件 .setNegativeButton("关闭", // 设置取消按钮 new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { }}).create(); // 创建对话框 dialog.show(); // 显示对话框 } } public void initAdapter(){ // 初始化适配器 Field[] fields = R.drawable.class.getDeclaredFields(); for (int x = 0; x < fields.length; x++) { if (fields[x].getName().startsWith("png_")){ // 所有png_*命名的图片 Map<String,Integer> map = new HashMap<String,Integer>() ; // 定义Map try { map.put("img", fields[x].getInt(R.drawable.class)) ; } catch (Exception e) { // 设置图片资源 } this.list.add(map) ; // 保存Map } } this.simpleAdapter = new SimpleAdapter(this, // 实例化SimpleAdapter this.list, // 要包装的数据集合 R.layout.grid_layout, // 要使用的显示模板 new String[] { "img" }, // 定义要显示的Map的Key new int[] {R.id.img }); // 与模板中的组件匹配 } }
相关推荐
通过学习和理解这些代码,开发者可以更好地掌握如何结合使用ViewFlipper和GridView来创建动态的、自动滚动的网格视图效果。在实际开发中,可以根据项目需求调整动画的参数、定时器的间隔,甚至可以加入手势识别,让...
Android 程序技术 ...网格视图GridView 网格视图GridView GridView支持的XML属性如表5所示: 高级控件-网格视图 Advanced controls - Grid view 属 性 描 述 android:columnWidth 用于设置列的宽度 android:gravi
在iOS开发中,GridView是一种常见的布局方式,它类似于Android中的GridView或者Web开发中的CSS Grid,可以灵活地展示多行多列的数据。这种视图通常用于显示不确定行数和列数的信息,比如图片、图标或者简单的文字...
以上就是实现“Android高仿支付宝gridview网格布局”的关键步骤和技术点。在实际开发中,你可能还需要根据具体需求进行调整和优化,确保布局既美观又高效。通过不断实践和学习,你可以创造出更具特色的网格布局,...
在Android开发中,网格视图(GridView)是一种非常常见的布局管理器,它允许开发者将数据以网格的形式展示出来,通常用于创建类似相册、菜单或图标列表等界面。本篇文章将深入探讨Android中的GridView及其使用方法。...
你可以运行应用,看到一个包含图片和文字的网格视图。当然,这只是一个基础示例,实际应用中可能需要处理更多复杂情况,比如点击事件、动态加载数据、自定义动画等。 在进一步优化GridView时,还可以考虑使用...
在Android开发中,GridView是一种非常常见的控件,它允许开发者以网格的形式展示数据。在GridView中实现item(单元格)的拖拽交换功能可以提供更好的用户体验,让用户能够自由调整元素的顺序。相比于ListView,虽然...
在Android开发中,网格视图(GridView)是一种非常常见的布局管理器,它允许开发者以网格的形式展示数据,通常用于创建照片库、应用列表等场景。这个"Android网格视图"主题涉及的知识点主要包括以下几个方面: 1. *...
以下是对标题和描述中提及的Android网格视图(GridView)相关知识点的详细解释: 1. **android:numColumns**:“auto_fit”或具体数字:这个属性决定了GridView的列数。当设置为“auto_fit”时,系统会根据可用空间...
2. **GridView**:则以网格形式展示数据,每行可以有多个列,适合展示图标或者小图片的列表,如应用列表或照片墙。 要实现这两种视图的切换,我们需要以下步骤: **步骤1:创建布局** 为ListView和GridView创建两...
在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。当我们处理大量数据时,分页加载可以提高应用性能,减少内存消耗,并提供更好的用户体验。本篇文章将详细讲解如何在Android中利用...
在Android开发中,GridView是一种非常常见的布局控件,它允许开发者以网格的形式展示数据,通常用于创建类似照片墙、应用快捷方式或者菜单等界面。在本项目“Android GridView宫格视图实践项目”中,我们将深入探讨...
在Android开发中,GridView是一个非常实用的控件,它能够以网格的形式展示数据,通常用于显示多行多列的内容,例如图片、应用图标等。在本文中,我们将深入探讨GridView的使用方法及其主要属性。 首先, GridView的...
在Android开发中,`GridView`是一种常见的用户界面组件,用于显示网格形式的数据列表,如相册、商品展示等场景。通过`GridView`可以很容易地实现宫格式布局效果。 #### 二、项目准备 1. **新建工程**:首先,在...
### C#网格视图控件GridView的方法 #### 网格视图控件GridView简介 在C#开发中,尤其是在Windows Forms应用开发中,GridView 控件是一种常用的展示数据的方式,它能够有效地展示表格形式的数据,并支持多种交互...
由于标题提到的是“ListView的网格视图”,我们将主要讨论使用GridView的情况。GridView是一个二维的列表视图,可以设置每行的列数,从而达到网格效果。 以下是一步一步实现这个功能的过程: 1. 创建布局文件:...
在Android开发中,GridView是一种非常常用的布局控件,它允许我们以网格的形式展示数据,通常用于创建像照片墙、应用列表等多列显示的内容。在本教程中,我们将深入探讨如何在Android应用中使用GridView。 首先,...
GridView作为一种常见的布局控件,通常用于展示网格状的数据,如图片、列表项等。在本主题中,我们将深入探讨如何创建两个可相互拖拉的自定义GridView控件,实现数据交互。 首先,了解GridView的基本用法。GridView...