GridView的简单使用

测试代码:

activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <GridView
        android:id="@+id/gridView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:columnWidth="90dp"
        android:horizontalSpacing="10dp"
        android:numColumns="auto_fit"
        android:stretchMode="columnWidth"
        android:verticalSpacing="10dp" />

</RelativeLayout>

介绍一下里面的某些属性:

android:numColumns="auto_fit" ,GridView的列数设置为自动

android:columnWidth="90dp",每列的宽度,也就是Item的宽度

android:stretchMode="columnWidth",缩放与列宽大小同步

android:verticalSpacing="10dp",两行之间的边距。

android:horizontalSpacing="10dp",两列之间的边距。

grid_item.xml:

<?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:padding="10dp" >

    <ImageView
        android:id="@+id/iamgeView"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dip"
        android:gravity="center"
        android:text="文字"
        android:textColor="@android:color/holo_red_light" />

</LinearLayout>

MainActivity.java:

package com.zzw.testgridview;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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

public class MainActivity extends Activity {

    private GridView gridView;
    private List<Map<String, Object>> data;
    private SimpleAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        init();

        gridView = (GridView) findViewById(R.id.gridView);
        String[] from = { "image", "text" };
        int[] to = { R.id.iamgeView, R.id.textView };
        adapter = new SimpleAdapter(this, data, R.layout.grid_item, from, to);
        gridView.setAdapter(adapter);

        gridView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                Toast.makeText(MainActivity.this, position + "",
                        Toast.LENGTH_SHORT).show();
            }
        });
    }

    private void init() {
        // 图片封装成一个数组
        int[] image = new int[] { R.drawable.a, R.drawable.b, R.drawable.c,
                R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.g,
                R.drawable.h, R.drawable.i, R.drawable.a, R.drawable.b,
                R.drawable.c, R.drawable.d, R.drawable.e, R.drawable.f,
                R.drawable.g, R.drawable.h, R.drawable.i };

        // 文字封装成一个数组
        String[] text = new String[image.length];
        for (int i = 0; i < image.length; i++) {
            text[i] = "文字" + i;
        }

        data = new ArrayList<Map<String, Object>>();
        for (int i = 0; i < image.length; i++) {
            HashMap<String, Object> map = new HashMap<String, Object>();

            map.put("image", image[i]);
            map.put("text", text[i]);

            data.add(map);
        }
    }
}
时间: 2024-07-31 17:46:30

GridView的简单使用的相关文章

Android中ListView嵌套GridView的简单消息流UI(解决宽高问题)

最近搞一个项目,需要用到类似于新浪微博的消息流,即每一项有文字.有九宫格图片,因此这就涉及到ListView或者ScrollView嵌套GridView的问题.其中GridView的高度问题在网上都很容易找到答案,即覆写onMeasure方法,然后设置高度的MeasureSpec.但是宽度问题确实没有什么资料,这里所说的宽度问题是比如GridView的列数为3,那么即使只有一张图片,gridview的宽度也是match_parent的,导致用户点击在图片范围外但是在gridview范围内时Lis

Android零基础入门第45节:GridView简单使用

前面一共用了8期来学习ListView列表的相关操作,其实学习的ListView的知识完全适用于AdapterView的其他子类,如GridView.Spinner.AutoCompleteTextView等组件,那么接下来分别来学习一下这些列表组件,本期先学习GridView的使用. 一.认识GridView 前面学的ListView是列表, 这里的GridView就是显示网格,用于在界面上按行.列分布的方式来显示多个组件. GridView 和 ListView 有共同的父类:AbsList

GridView内容详解(转载)

GridView内容详解(转载) GridView是ASP.NET界面开发中的一个重要的控件,对GridView使用的熟练程度直接影响软件开发的进度及功能的实现.(车延禄)GridView的主要新特性:    1.与DataSource控件结合实现了显示与数据操作的分离,大大减化了代码的编写量;    2.实现"双向绑定",无需手动检索数据.    2.在列的类型上新增了CheckBoxField和ImageField两个类型列;    3.对排序和分页可以实现异步操作;    4.对

Android系列教程之GridView组件的使用

GridView是一个网络布局的视图,他能让你的元素显示在一个个的格子里.我们的桌面就是一个GridView.. 1.新建一个gridview工程,activity_main.xml的代码如下: <?xml version="1.0" encoding="utf-8"?> <GridView   xmlns:android="http://schemas.android.com/apk/res/android"   androi

设置不可滑动的GridView

自定义一个控件GridView,简单处理下就可以实现GridView不能滑动: public class UnScrollGridView extends GridView { public UnScrollGridView(Context context) { super(context); } public UnScrollGridView(Context context, AttributeSet attrs) { super(context, attrs); } public UnScr

Android 中常见控件的介绍和使用

1 TextView文本框 1.1 TextView类的结构 TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用于显示文本的区域.TextView类的层次关系如下: java.lang.Object   ? android.view.View   ? android.widget.TextView 直接子类: Button, CheckedTextView, Chronometer, DigitalClock, EditText 间接子类: AutoCompleteTextV

qml基础学习 模型视图(一)

一.理解qml模型和视图 qt的发展是迅速的,虽然在每一个release版本中或多或少都有bug,但是作为一个庞大的gui库,no,应该说是一个开发框架开说,qt已经算是做的相当好.qml部分是qt4.7的时候推出的,当时qml只是为了移动端而设计的开发语言,随着it行业的发展,桌面端也产生了一定的需求,这就使得qml也必须支持桌面端的开发.使用qml可以做出绚丽的界面,并把逻辑和界面展示分开,qml和C++就好比html和JavaScript. qt中有大量的model/view类,视图类:Q

Android自定义效果——随机抽奖

那天逛android开源代码的时候,看到一个wheel menu的自定义效果,就是类似人家的那种转盘抽奖,把人家工程看了下,觉得很好玩,但是不想在他上面改,于是就自己想了一个类似的随即抽奖的效果,自我感觉比他做得好.那个开源项目地址:https://github.com/anupcowkur/Android-Wheel-Menu 我这个项目地址:http://download.csdn.net/detail/u012321815/8036345 我这个最初是想做一个大家随即抽一个请吃饭的应用.不

android 有弹性的ScrollView 简单实现,与处理ScrollView和ListView,GridView之间的冲突

处理ScrollView和ListView,GridView之间的冲突, 最好的办法就是继承这两个类,重写他们的onMeasure方法即可: ListView: import android.widget.ListView; /** * ScrollView中嵌入ListView,让ListView全显示出来 * @author John * */ public class MyListView extends ListView{ public MyListView(android.conten