android提供一个用于拍照功能的Intent,可通过MediaStore.ACTION_IMAGE_CAPTURE调用。
然后可以再Activity或者Fragment里面调用startActivityForResult即可。
可以通过相应的OnActivityResult处理获得结果。如下
@Override
public void onActivityResult(int request, int result Intent data)
{
Bitmap bmp = (Bitmap)data.getExtras().get("data");
ImageView imageView = (ImageView)view.find...
imageView.setBitmap(bmp);
}
然而某些情况下ImageView是不会有更新的。原因如下
因为拍照是调用新的Activity,返回后需要重新对Fragment进行初始化。最可能发生的情况是imageVIew.setBitmap后可能还要在onCreateView里面对其赋值。故而看起来是没有效果的。怎么办呢?可以通过缓存图片来解决这一问题。