GridView的用法

GirdView和listView很类似,不过就是布局有些差异,其他都没什么。

废话不多说,直接上代码。(充分体现实干精神有木有。。)



先说说它的效果图














----------------------我是华丽的分割线---------------------------------------------------------------------





首先布局文件,在activity_main.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"
    android:orientation="vertical"
    tools:context="com.example.gridviewdemo.MainActivity" >

    <!-- gravity居中显示,
     ndroid:horizontalSpacing="1pt"   表示每个item水平间隔的距离, 
     android:verticalSpacing="1pt"    表示每个item垂直间隔的距离
     android:numColumns="4"           表示一行有四个Item
    -->
    <GridView
        android:id="@+id/main_gv"
        android:layout_width="match_parent"
        android:layout_height="254dp"
        android:gravity="center"
        android:horizontalSpacing="1pt"
        android:numColumns="4"
        android:verticalSpacing="1pt" >
    </GridView>

    <ImageView
        android:id="@+id/main_iv"
        android:layout_width="match_parent"
        android:layout_height="217dp"
        android:layout_alignBottom="@id/main_gv" />

</LinearLayout>



这里是activity.java...

package com.example.gridviewdemo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SimpleAdapter;

public class MainActivity extends Activity {

	private GridView main_gv;
	private ImageView main_iv;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		// 1.获取UI控件id
		initView();

		// 2.初始化数据
		initData();

	}

	private void initData() {

		List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();

		final int[] drawable_id = {R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.e,
				R.drawable.d, R.drawable.f, R.drawable.g, R.drawable.h,
				R.drawable.i, R.drawable.j, R.drawable.k, R.drawable.l,
		};
		
		
		//这里是在适配器里统计图片的数目及提供图片的position
		for (int i = 0;i <drawable_id.length; i++ ) {
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("image", drawable_id[i]);
			listItems.add(map);
		}
		
		
		// 3.到drawable加载几张图片,设置设配器,this, null, 0, null, null这里5个参数,它要什么,我给什么
	//	SimpleAdapter sa = new SimpleAdapter(this, listItems, R.layout.cell(这里随便写个布局),
	//			new String[]{"image"}(可以写死), new int[]{R.id.image1}(可以写死));
		SimpleAdapter sa = new SimpleAdapter(this, listItems, R.layout.cell,
				new String[]{"image"}, new int[]{R.id.image1});

		
		//4.GridView设置适配器
		main_gv.setAdapter(sa);
		
		
		
		//5.设置点击事件
		main_gv.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> aview, View view, int position,
					long id) {
				//设置图片的来源
				main_iv.setImageResource(drawable_id[position]);
			}
			
		});
	}
	
	private void initView() {
		main_gv = (GridView) findViewById(R.id.main_gv);
		main_iv = (ImageView) findViewById(R.id.main_iv);

	}

}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GridViewAndroid中常用的布局控件之一,可以实现网格状的布局。以下是GridView的使用方法: 1. 在XML布局文件中添加GridView控件: ``` <GridView android:id="@+id/gridview" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns="3" /> ``` 2. 在Java代码中获取GridView控件并设置适配器: ``` GridView gridView = findViewById(R.id.gridview); gridView.setAdapter(new MyAdapter()); ``` 3. 创建适配器MyAdapter,并实现getView方法: ``` class MyAdapter extends BaseAdapter { private Context mContext; public MyAdapter(Context context) { mContext = context; } @Override public int getCount() { return 9; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { imageView = new ImageView(mContext); imageView.setLayoutParams(new GridView.LayoutParams(200, 200)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); } else { imageView = (ImageView) convertView; } //设置图片资源 imageView.setImageResource(R.drawable.image); return imageView; } } ``` 在getView方法中,我们可以设置每个网格的样式和内容,这里以显示图片为例。 以上就是GridView的基本使用方法。需要注意的是,如果网格较多,可以考虑使用RecyclerView来实现更好的性能和滑动体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值