GridView简单说明:
GridView(网格视图)按照行列的方式来显示内容,一般用于显示图片.
GridView显示也需要三要素: 1)控件本身 2)数据源 3)适配器
GridView的常用属性如下:
android:numColumns 设置列数
android:columnWidth 每列的宽度,也就是Item的宽度
android:stretchMode 缩放模式
android:verticalSpacing 垂直边距
android:horizontalSpacing 水平边距
布局文件中声明如下图:
<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/grid" android:layout_width="match_parent" android:layout_height="match_parent" android:columnWidth="100dp" android:horizontalSpacing="20dp" android:numColumns="3" android:verticalSpacing="20dp" /> </RelativeLayout>Java代码:
import android.app.Activity; import android.os.Bundle; import android.widget.GridView; import android.widget.SimpleAdapter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class MainActivity extends Activity { private GridView gridView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //要素1 声明控件 gridView = (GridView) findViewById(R.id.grid); //要素2 数据源 List<Map<String,Object>> data = new ArrayList<Map<String,Object>>(); //放置数据 for (int i = 1; i < 10; i++) { Map<String, Object> map = new HashMap<String, Object>(); map.put("name", "小明:"+i); //根据图片名称获取图片id /** * 参数一资源的名称 * 参数二资源的类型 * 参数三包名 */ int id =getResources().getIdentifier("img0"+i, "drawable", getPackageName()); map.put("img", id); data.add(map); } //要素3 Adapter //参数一:上下文 参数二:数据 参数三:单条布局 参数四: map集合的key 参数五:布局的id from和to要一一对应 SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.item, new String[]{"name","img"}, new int[]{R.id.text,R.id.image}); //相结合 gridView.setAdapter(adapter); } }单条布局:
<?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" > <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/img01" /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="小明" />mipmap资源文件中放置了9张图片 (随便9张就行,但要注意图片的命名需和代码中一致 格式:imag0X.png)
最终运行效果如下: