Android开发之GridView的使用(解读谷歌官方API)

来源:互联网 发布:卡盟源码下载 编辑:程序博客网 时间:2024/05/18 10:20

      GridView将图片显示在二维可移动的网格里,使用ListAdapter可以将Grid项目自动填充满整个布局。下面我们根据官方文档的例子来实现一下使用GridView,点击视图里的图片弹出图片的position的效果。

 首先在main.xml文件创建下列布局。

 

<?xml version="1.0" encoding="utf-8"?><GridView xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/gridview"    android:layout_width="fill_parent"     android:layout_height="fill_parent"    android:columnWidth="90dp"    android:numColumns="auto_fit"    android:verticalSpacing="10dp"    android:horizontalSpacing="10dp"    android:stretchMode="columnWidth"    android:gravity="center"/>

       在MainAcitivity中,因为要使用setAdapter适配器加载数据,所以要先创建一个类继承BaseAdapter

public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    GridView gridview = (GridView) findViewById(R.id.gridview);    gridview.setAdapter(new ImageAdapter(this));    gridview.setOnItemClickListener(new OnItemClickListener() {        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {            Toast.makeText(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show();        }    });}public class ImageAdapter extends BaseAdapter {    private Context mContext;    public ImageAdapter(Context c) {        mContext = c;    }    public int getCount() {        return mThumbIds.length;    }    public Object getItem(int position) {        return null;    }    public long getItemId(int position) {        return 0;    }    // create a new ImageView for each item referenced by the Adapter    public View getView(int position, View convertView, ViewGroup parent) {        ImageView imageView;        if (convertView == null) {  // if it's not recycled, initialize some attributes            imageView = new ImageView(mContext);            imageView.setLayoutParams(new GridView.LayoutParams(85, 85));            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);            imageView.setPadding(8, 8, 8, 8);        } else {            imageView = (ImageView) convertView;        }        imageView.setImageResource(mThumbIds[position]);        return imageView;    }    // references to our images    private Integer[] mThumbIds = {            R.drawable.sample_2, R.drawable.sample_3,            R.drawable.sample_4, R.drawable.sample_5,            R.drawable.sample_6, R.drawable.sample_7,            R.drawable.sample_0, R.drawable.sample_1,            R.drawable.sample_2, R.drawable.sample_3,            R.drawable.sample_4, R.drawable.sample_5,            R.drawable.sample_6, R.drawable.sample_7,            R.drawable.sample_0, R.drawable.sample_1,            R.drawable.sample_2, R.drawable.sample_3,            R.drawable.sample_4, R.drawable.sample_5,            R.drawable.sample_6, R.drawable.sample_7    };}

     添加以上代码就已大功告成。setLayoutParams(ViewGroup.LayoutParams),设置图片大小。setScaleType(ImageView.ScaleType) 设置图片显示形式。setPadding(int, int, int, int)设置图片的间距。如果视图传递给getView()不是null,那么使用当地的回收的convertView视图对象进行初始化。

4 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 金花鼠尾巴断了怎么办 辞职交了不批怎么办 离职了又想回去怎么办 想辞职领导不批怎么办 急辞职领导不批怎么办 她生气不理我了怎么办 分手了之前的钱怎么办 结婚后老公变了怎么办 我不小心出轨了怎么办 微博账号被锁定怎么办 微博被盗号了怎么办 如果微博被盗了怎么办 老公炒股亏光了怎么办 新id密码不匹配怎么办 手机不识别sd卡怎么办 小米手环容易掉怎么办 小米4gps信号弱怎么办 小米4内存不够用怎么办 地暖放气阀漏水怎么办 暖气排气阀堵了怎么办 跳绳一只脚腕疼怎么办 牙齿不能吃冷的怎么办 牙齿不敢吃凉的怎么办 蛀牙吃凉的就疼怎么办 吃冷的牙齿就痛怎么办 七日杀定居之旅怎么办 眼睛肿好几天了怎么办 下眼睑疼痒肿痛怎么办 整个上眼皮肿了怎么办 上眼皮突然肿了怎么办 眼皮很肿又厚怎么办 上眼皮上长疙瘩怎么办 小孩眼睛长了麦粒肿怎么办 眼睛里长了麦粒肿怎么办 肛周脓肿流脓了怎么办 眼睑肿了一个包怎么办 上眼皮长针眼了怎么办 三岁宝宝内热重怎么办 5个月小孩内火重怎么办 孕妇o型rh阳性怎么办 异次元通讯对方下线了怎么办