安卓控件使用系列27:GridView网格控件的使用方法

GridView网格控件的使用是安卓中经常用到的控件,用于把数据库中的数据显示在手机屏幕上,下面我们来一起分享一下它的使用方法。

这个例子实现的是把一些图片以指定的排列方式显示在用户手机上的效果。

整体思路:在xml文件中定义一个GridView控件和一个ImageView控件,然后新建一个cell.xml文件,在里面定义一个ImageView控件;在活动中实现OnItemSelectedListener,OnItemClickListener,定义一个整型数组,存放各个图片资源的ID,把各个图片以遍历数组的形式依次加入到Map类型的动态数组中,定义一个适配器,把这个布局文件中ImageView控件和新建的布局文件关联,并将Map类型的动态数组绑定到这个适配器上,将这个适配器绑定到GridView控件上,在onItemClick这个方法中,给ImageView控件设置相应索引的图片,在onItemSelected这个方法中,给ImageView控件设置相应索引的图片(这个可以没有)。就这样实现了将一些图片展示以一定的排列顺序显示在用户手机上的效果。

activity_main.xml文件:

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    >
    <GridView 
        android:id="@+id/gridview"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:horizontalSpacing="6dp"
       android:verticalSpacing="6dp"
       android:numColumns="4"
       android:padding="20dp"
        >
       
    </GridView>
     <ImageView 
            android:id="@+id/imageview"
            android:layout_width="fill_parent"
            android:layout_height="150dp"
            />
        
</LinearLayout>

cell.xml文件:

 <ImageView
        android:id="@+id/imageview"
        android:layout_width="48dp"
        android:layout_height="48dp"
         />

MainActivity.java文件:

public class MainActivity extends Activity implements OnItemSelectedListener,OnItemClickListener{
    private ImageView imageView;
    private int[] resIds=new int[]{
    		R.drawable.new1,R.drawable.new2,R.drawable.new3,R.drawable.new4,R.drawable.new5,
    		R.drawable.new6,R.drawable.new7,R.drawable.new8,R.drawable.new9,R.drawable.new10
    };
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		GridView gridView=(GridView)findViewById(R.id.gridview);
		List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
		for(int i=0;i<resIds.length;i++){//把所有图片都放到list中
			Map<String, Object> cell=new HashMap<String, Object>();
			cell.put("imageview", resIds[i]);
			list.add(cell);
		}
//		定义一个适配器,把本布局的imageview和定义控件的布局关联
		SimpleAdapter simpleAdapter=new SimpleAdapter(this,list,R.layout.cell,new String[]{"imageview"},new int[]{R.id.imageview});
		gridView.setAdapter(simpleAdapter);//绑定适配器
		
		imageView=(ImageView)findViewById(R.id.imageview);
		gridView.setOnItemClickListener(this);
		gridView.setOnItemSelectedListener(this);
		imageView.setImageResource(resIds[0]);
	}


	@Override
	public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
		// TODO Auto-generated method stub
		imageView.setImageResource(resIds[position]);
	}

	@Override
	public void onItemSelected(AdapterView<?> parent, View view, int position,
			long id) {
		// TODO Auto-generated method stub
		imageView.setImageResource(resIds[position]);
	}

	@Override
	public void onNothingSelected(AdapterView<?> parent) {
		// TODO Auto-generated method stub
		
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值