一、布局文件
设置多少列:numColumns 设置分隔:horizontalSpacing verticalSpacing
<GridView
android:id="@+id/gv_grid"
android:layout_width="match_parent"
android:layout_height="165dp"
android:gravity="center"
android:numColumns="5"
android:horizontalSpacing="1dp"
android:verticalSpacing="1dp">
</GridView>
二、SimpleAdapter
两个全局的数组
private int[] icons = new int[] {
R.drawable.indicator_corner_bg,R.drawable.indicator_corner_bg,
R.drawable.indicator_corner_bg,R.drawable.indicator_corner_bg,
R.drawable.indicator_corner_bg, R.drawable.indicator_corner_bg,
R.drawable.indicator_corner_bg,R.drawable.indicator_corner_bg,
R.drawable.indicator_corner_bg
};
private String[] names = new String[] {
"测试一","测试二",
"测试一","测试二",
"测试一","测试二",
"测试一","测试二",
"测试一","测试二",
};
private List<Map<String,Object>> initGridViewData() {
List<Map<String,Object>> listItems = new ArrayList<>();
for (int i = 0; i < icons.length; i++) {
// 如果要加载网络图片 icons[i] 替换成 BitmapHelper.getBitmap("http://192.168.1.119:8080/strutsproj/upload/type1.jpg")
Map<String, Object> listItem = new HashMap<>();
listItem.put("icon",icons[i]);
listItem.put("name",names[i]);
listItems.add(listItem);
}
return listItems;
}
private void initGridView() {
SimpleAdapter mSimpleAdapter = new SimpleAdapter(
this,
initGridViewData(),
R.layout.gridview_item_layout,
new String[]{"icon","name"},
new int[]{R.id.iv_image, R.id.tv_itemname}
);
// 如果是加载网络图片,这个方法要写
mSimpleAdapter.setViewBinder(new SimpleAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Object data,
String textRepresentation) {
//判断是否为我们要处理的对象
if(view instanceof ImageView && data instanceof Bitmap){
ImageView iv = (ImageView) view;
iv.setImageBitmap((Bitmap) data);
return true;
}else
return false;
}
});
mGridView.setAdapter(mSimpleAdapter);
// 点击
mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
}
});
}