网格视图GridView的排列方式与矩阵类似,当屏幕上有很多元素(文字、图片或其他元素)需要按矩阵格式进行显示时,就可以使用GridView控件来实现。
看到目前为止就是用适配器进行规定布局方式,并把每个布局文件(imageview 和 textview)显示出来。
布局文件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"
>
<ImageView
android:id="@+id/itemImage1"
android:layout_width="40dp"
android:layout_height="40dp"
android:scaleType="fitCenter"
android:layout_centerHorizontal="true" />
<TextView
android:id="@+id/itemName1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_below="@+id/itemImage1"
android:layout_centerHorizontal="true"
/>
</RelativeLayout>
GridView的xml文件:
<LinearLayout 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/gridView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:numColumns="3"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
></GridView>
</LinearLayout>
numColumns属性指示图片展示多少列
package com.example.grilview;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.SimpleAdapter;
public class GrilView01 extends Activity {
//声明一个GridView
private GridView gridview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gril_view01);
// 获得控件
gridview = (GridView)findViewById(R.id.gridView1);
// 得到数据
String [] ImageName = {"book","camera","computer","connecton","driving","fitting","home",
"music","newspaper","pacman","phone","video","watch"};
int [] ImageId={
R.drawable.book,R.drawable.camera,R.drawable.computer,R.drawable.connection,R.drawable.driving,
R.drawable.fitting,R.drawable.home,R.drawable.music,R.drawable.newspaper,R.drawable.pacman,
R.drawable.phone,R.drawable.video,R.drawable.watch
};
ArrayList<HashMap<String, Object>> array=new ArrayList<HashMap<String,Object>>();
for(int i=0;i<ImageName.length;i++)
{
HashMap<String, Object> map= new HashMap<String, Object>();
map.put("ImageName", ImageName[i]);
map.put("ImageId", ImageId[i]);
array.add(map);
}
// 适配器定义规则
SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(), array,R.layout.image, new String[]{"ImageName","ImageId"}, new int[]{R.id.itemName1,R.id.itemImage1});
// 绑定适配器
gridview.setAdapter(adapter);
}
}
效果: