最近做了一个app,实现的功能是一个activity中有一个包含多个imageview的gridview,如图:
要实现的功能是点击图中的图片就会开启系统自带的照相机拍照,然后再在这个位置显示出来。
完成这个功能分为几步:
1、自定义一个BaseAdapter,在getview()中获取imageview控件,然后给它加上监听器,用于监听点击事件。
final ImageView image= (ImageView) convertView.findViewById(R.id.gallery_image);
image.setOnClickListener(new View.OnClickListener() {
@Override
Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
imageGalleryFragment.startActivityForResult(intent,R.integer.camera);
}
});
上面代码中,
Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
imageGalleryFragment.startActivityForResult(intent,R.integer.camera);
这段话就是用来启动系统自带相机的,但是你可以看到在startactivityForResult的前面还有一个imageGalleryFragment,必须这样写,因为要想在非Activity类中使用startactivityForResult必须在自定义Baseadapter的构造方法中获取使用这个自定义Adapter的activity或者fragment,然后在使用这个adapter的activity中还要写onActivityResult()方法。
好了,大概就说这么多了······