Android之GridView简单说明

GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的。主要用于设置Adapter。
GridView常用的XML属性:

 

属性名称

描述

android:columnWidth

设置列的宽度。

android:gravity

设置此组件中的内容在组件中的位置。可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical可以多选,用“|”分开。

android:horizontalSpacing

两列之间的间距。

android:numColumns

设置列数。

android:stretchMode

缩放模式。

android:verticalSpacing

两行之间的间距。

 

下面用一个例子来说明吧;

新建一个空项目,修改main_activity.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"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:background="#000000">
    <GridView
        android:id="@+id/gridView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:numColumns="4"
        android:stretchMode="columnWidth"
        android:gravity="center">
</GridView>
 
</RelativeLayout>

新增一个item_layout.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:gravity="center" android:orientation="vertical">
    <ImageView
        android:id="@+id/img"
        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="天气"
        android:textColor="#ffffff"/>
</LinearLayout>

修改mainActivity.java的代码入下:

package yaowen.com.helloworld;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
public class MainActivity extends AppCompatActivity {
    private GridView gridView;
    private List<Map<String,Object>> data_list;
    private SimpleAdapter sim_adapter;
    //图片封装为一个组,这个素材文件自己找了呀~!
    private int[] icon={R.drawable.camera,R.drawable.calendar,R.drawable.chrome,R.drawable.email,R.drawable.maps,R.drawable.music,R.drawable.notes,R.drawable.recorder,R.drawable.phone,R.drawable.playstore,R.drawable.gallery,R.drawable.twitter};//R.drawable.calculator};

    private String[] iconName={"照相机","日历","浏览器","邮箱","地图","音乐","便签","录音","电话","应用商店","图库","迅雷"};//,"计算器"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        gridView= (GridView) findViewById(R.id.gridView);
        //新建List
        data_list=new ArrayList<Map<String, Object>>();
        //获取数据
        getData();
        //新建数据
        String[] from={"image","text"};
        int[] to={R.id.img,R.id.tv};
        sim_adapter=new SimpleAdapter(this,data_list,R.layout.grid_item,from,to);
        //配置适配器
        gridView.setAdapter(sim_adapter);
        //当AdapterView被单击(触摸屏或者键盘),则返回的Item单击事件
        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                //在本例中arg2=arg3
                HashMap<String, Object> item=(HashMap<String, Object>) arg0.getItemAtPosition(arg2);
                //显示所选Item的ItemText
                 String textTest=(String)item.get("text");
                 setTitle(textTest);
                 Toast.makeText(getApplicationContext(), "你点击的是:" + textTest, Toast.LENGTH_SHORT).show();
            }
        });
    }
    private List<Map<String,Object>> getData() {
        //icon和iconName的长度是相同的,这里任选其一都可以
        for (int i=0;i<icon.length;i++){
            Map<String,Object> map=new HashMap<String, Object>();
            map.put("image",icon[i]);
            map.put("text",iconName[i]);
            data_list.add(map);
        }
        return data_list;
    }
}

代码就是这么简单,相信你用了会这么觉得了!

最后的效果图如下:

Android之GridView简单说明

Android之GridView简单说明

你可能感兴趣的:(android,GridView,girdview布局)