GridView(网络视图)的基本使用
16lz
2021-01-23
一:本节引言
GridView是是第二个Adapter类的控件,GridView就是显示网格!他和ListView一样是AbsListView的子类!
二:相关属性
android:columnWidth:设置列的宽度 android:gravity:组件对其方式 android:horizontalSpacing:水平方向每个单元格的间距 android:verticalSpacing:垂直方向每个单元格的间距 android:numColumns:设置列数 android:stretchMode:设置拉伸模式,可选值如下: none:不拉伸;spacingWidth:拉伸元素间的间隔空隙 columnWidth:仅仅拉伸表格元素自身 spacingWidthUniform:既拉元素间距又拉伸他们之间的间隔空袭
三:使用实例 实现的效果图:
代码实现:
首先是GridView的item布局:
<?xml version="1.0" encoding="utf-8"?>
然后是entity的实体类:Fruit.java:
package com.bzu.bztc.entity;public class Fruit {private int fruitId;private String fruitName;public Fruit(){}public Fruit(int fruitId, String fruitName) {this.fruitId = fruitId;this.fruitName = fruitName;}public int getFruitId() {return fruitId;}public void setFruitId(int fruitId) {this.fruitId = fruitId;}public String getFruitName() {return fruitName;}public void setFruitName(String fruitName) {this.fruitName = fruitName;}}
最后是MainActivity的布局及java代码 activity_main的布局:
MainActivity的Java代码:这里使用的Adapter是直接复用BaseAdapter的
package com.bzu.bztc.gridview;import java.util.ArrayList;import com.bzu.bztc.entity.Fruit;import com.bzu.bztc.entity.MyAdapter;import android.os.Bundle;import android.app.Activity;import android.content.Context;import android.view.Menu;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterViewFlipper;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.Toast;public class MainActivity extends Activity {private Context mContext;private GridView grid_photo;private BaseAdapter mAdapter;private ArrayList mData = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext = MainActivity.this;grid_photo = (GridView) findViewById(R.id.grid_photo);mData = new ArrayList();mData.add(new Fruit(R.drawable.apple_pic, "苹果"));mData.add(new Fruit(R.drawable.banana_pic, "香蕉"));mData.add(new Fruit(R.drawable.cherry_pic, "樱桃"));mData.add(new Fruit(R.drawable.orange_pic, "橘子"));mData.add(new Fruit(R.drawable.mango_pic, "芒果"));mData.add(new Fruit(R.drawable.pear_pic, "梨"));mData.add(new Fruit(R.drawable.pineapple_pic, "菠萝"));mData.add(new Fruit(R.drawable.watermelon_pic, "西瓜"));mData.add(new Fruit(R.drawable.strawberry_pic, "草莓"));mData.add(new Fruit(R.drawable.grape_pic, "葡萄"));mAdapter = new MyAdapter(mData, R.layout.fruit_item) {@Overridepublic void bindView(ViewHolder holder, Fruit obj) {holder.setImageResource(R.id.img_icon, obj.getFruitId());holder.setText(R.id.txt_icon, obj.getFruitName());}};grid_photo.setAdapter(mAdapter);grid_photo.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {Toast.makeText(mContext, "你点击了~" + position + "~项", Toast.LENGTH_SHORT).show();}});}}