GridView实现图片和文本的简单显示一

来源:互联网 发布:世界上最冷的国家知乎 编辑:程序博客网 时间:2024/04/30 00:38
// 构造函数 public SimpleAdapter (Context context, List<? extends
        // Map<String, ?>> data, int resource, String[] from, int[] to)

        // 参数
        // context 关联SimpleAdapter运行着的视图的上下文。
        // data 一个Map的列表。在列表中的每个条目对应列表中的一行,应该包含所有在from中指定的条目
        // resource 一个定义列表项目的视图布局的资源唯一标识。布局文件将至少应包含哪些在to中定义了的名称。
        // from 一个将被添加到Map上关联每一个项目的列名称的列表

        // to 应该在参数from显示列的视图


xml代码:

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <GridView
        android:id="@+id/mygridview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:numColumns="4"
        android:stretchMode="columnWidth" />

</LinearLayout>

显示图片和文本布局---grid_item.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:paddingBottom="6dip" >

    <ImageView
        android:id="@+id/image_item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true" />

    <TextView
        android:id="@+id/text_item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/image_item"
        android:layout_centerHorizontal="true" />

</RelativeLayout>


java代码:

package com.example.gridviewd;

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.widget.GridView;
import android.widget.SimpleAdapter;

/**
 * 显示图片,且在图片的下方显示图名 可将图片和文本放入一个布局中,而该布局只是GridView的一项而已,见grid_item.xml
 *
 * @author hunter
 *
 */
public class MainActivity extends Activity {

    private GridView gv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        // 准备要添加的数据条目,固定假如9条
        List<Map<String, Object>> items = new ArrayList<Map<String, Object>>();
        for (int i = 0; i < 9; i++) {

            Map<String, Object> item = new HashMap<String, Object>();
            // 添加图像资源的ID
            item.put("imageItem", R.drawable.ic_launcher);
            // 按序号添加ItemText
            item.put("textItem", "icon" + i);
            items.add(item);
        }

        // 构造函数 public SimpleAdapter (Context context, List<? extends
        // Map<String, ?>> data, int resource, String[] from, int[] to)

        // 参数
        // context 关联SimpleAdapter运行着的视图的上下文。
        // data 一个Map的列表。在列表中的每个条目对应列表中的一行,应该包含所有在from中指定的条目
        // resource 一个定义列表项目的视图布局的资源唯一标识。布局文件将至少应包含哪些在to中定义了的名称。
        // from 一个将被添加到Map上关联每一个项目的列名称的列表
        // to 应该在参数from显示列的视图

        // 实例化一个适配器
        SimpleAdapter adapter = new SimpleAdapter(this, items,
                R.layout.grid_item, new String[] { "imageItem", "textItem" },
                new int[] { R.id.image_item, R.id.text_item });

        // 获得GridView实例
        gv = (GridView) findViewById(R.id.mygridview);
        // 为GridView设置适配器
        gv.setAdapter(adapter);

    }
}


原创粉丝点击