[Android]在App中使用相机

如果要在自己的应用中实现拍照的功能,首先要在AndroidManifest.xml文件中添加权限:

<uses-permission android:name="android.permission.CAMERA"/>  

启动相机的方法非常简单,通过intent访问MediaStore.ACTION_IMAGE_CAPTURE

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(intent, 1);

拍照并确认后,Activity的onActivityResult方法会被调用,在这里可以获取图片的数据。

onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {

        if (resultCode == RESULT_OK) {

            Bitmap bmPhoto = (Bitmap) data.getExtras().get("data");

            // You can set bitmap to ImageView here

        }

    }

}

用这种方法,会发现获取的Bitmap很小,这其实是拍下的图片的缩略图。

如果想获取原始的大图,推荐的方法是在启动相机前先指定好图片的文件地址,通知intent,同时也保留在成员变量中。

然后在onActivityResult函数中,可以直接打开该文件。

第一段代码做如下修改:

String sFileFullPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/test.jpg";

File file = new File(sFileFullPath);

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));

startActivityForResult(intent, 1);

 

你可能感兴趣的:(android)