GridView解析

GridView是一个ViewGroup,显示项目在一个二维的,可滚动的网格。网格项目会自动插入到使用ListAdapter布局。说白了就是一个平铺的照片缩略图界面。

在本教程中,您将创建一个网格图像的缩略图。当选择一个项时,将显示一个Toast消息的位置的图像。

 

1、创建一个新项目,以HelloGridView命名(随意)。

 

2、找到一些你想使用的照片,或下载一些示例图像。保存图像文件到项目的res/drawable/目录。

 

3、打开res /layout/main.xml文件,插入下面的内容。

   

<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:gravity="center"
    android:horizontalSpacing="10dp"
    android:numColumns="auto_fit"
    android:stretchMode="columnWidth"
    android:verticalSpacing="10dp" 
/>

GridView填满整个屏幕。这个有自解释的属性(这句是直接翻译出来,具体起啥作用还真没仔细研究)。

4打开HelloGridView.java把下面的代码插入到onCreat()方法中

		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(MainActivity.this, "" + position,
						Toast.LENGTH_SHORT).show();
			}
		});

在main.xml布局设置内容的视图时,GridView是通过findViewById(int)获取的。这个setAdapter()方法然后设置一个自定义适配器(ImageAdapter) 被显示在网格中所有项目的源。这个ImageAdapter是在下一步创建。

这个有点类似前面那个画廊( Gallery)。

5、创建一个集成于BaseAdpater的类ImageAdapte,代码如下

         publicclass ImageAdapter extends BaseAdapter implements ListAdapter{

    private Context mContext;

    public ImageAdapter(Context c) {

       mContext = c;

    }

    publicint getCount() {

       returnmThumbIds.length;

    }

    public Object getItem(int position) {

       returnnull;

    }

    publiclong getItemId(int position) {

       return 0;

    }

    public View getView(int position, View convertView, ViewGroupparent) {

       ImageView imageView;

       if (convertView == null) {

          

           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;

    }

   

    private Integer[] mThumbIds = { R.drawable.p41, R.drawable.p42,

           R.drawable.p43, R.drawable.p44, R.drawable.p47, R.drawable.p41,

           R.drawable.p42, R.drawable.p43, R.drawable.p44, R.drawable.p47,

           R.drawable.p41, R.drawable.p42, R.drawable.p43, R.drawable.p44,

           R.drawable.p47 };

}
判断参数convertView(View)是否为空,如果为空,那就初始化新的imageView,否则,就将convertView赋值给imageView。在imageView被实例化后,执行setImageResource方法,添加图片内容。

最后声明了数组,用来从drawable文件夹中提取我们放进去的素材图片(其他内部执行的过程,可以参阅android源代码)。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值