如果要在自己的應(yīng)用中實(shí)現(xiàn)拍照的功能,,首先要在AndroidManifest.xml文件中添加權(quán)限:
- <uses-permission android:name="android.permission.CAMERA"/>
啟動相機(jī)的方法非常簡單,通過intent訪問MediaStore.ACTION_IMAGE_CAPTURE
- Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
- startActivityForResult(intent, 1);
拍照并確認(rèn)后,,Activity的onActivityResult方法會被調(diào)用,,在這里可以獲取圖片的數(shù)據(jù)。
- onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode == 1) {
- if (resultCode == RESULT_OK) {
- Bitmap bmPhoto = (Bitmap) data.getExtras().get("data");
-
- }
- }
- }
用這種方法,,會發(fā)現(xiàn)獲取的Bitmap很小,,這其實(shí)是拍下的圖片的縮略圖。
如果想獲取原始的大圖,,推薦的方法是在啟動相機(jī)前先指定好圖片的文件地址,,通知intent,同時也保留在成員變量中,。
然后在onActivityResult函數(shù)中,,可以直接打開該文件。
第一段代碼做如下修改:
- 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);