調用手機相機拍照並獲取拍攝的照片

程序截圖



step1:調用手機相機

通過   Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

Uri uri=Uri.fromFile(new File("所照片需要存儲的路徑"))    //顯示原圖的時候要用此方法,顯示縮略圖不用寫此代碼

intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);      //顯示原圖的時候要用此方法,顯示縮略圖不用寫此代碼

startActivityForResult(intent,1);

step2:拍攝結束之後獲取拍攝的照片

通過獲取返回的數據來得到拍攝的照片

1、縮略圖獲取

將上面返回的intent的數據取出  

Bundle bundle=intent.getExtra();

BitMap bitmap=bundle.get("data");

然後就可以將bitmap顯示在ImageView中了

2、照片原圖的顯示

通過文件的讀取可以獲取文件  FileInputStream inputStream=new FileInputStream(“上面粗出的文件的路徑”);

然後通過BitMap的BitMapFactory.decodeStream(inputstream);將數據流轉換爲BitMap

然後就可以將bitmap顯示在ImageView中了

核心源碼:

        public void startTakePhoto(View view) {
		Intent intent =new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
		
		Uri uri=Uri.fromFile(new File(mFilepath));
		
		intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);
		
		startActivityForResult(intent, 1);
	}
	
	@Override
	protected void onActivityResult(int arg0, int arg1, Intent arg2) {
		// TODO Auto-generated method stub
		super.onActivityResult(arg0, arg1, arg2);
		
		if (arg1==RESULT_OK) {
			 if (arg0==1) {
				 
				 //獲取拍攝到的圖片
				 
//				Bundle bundle=arg2.getExtras();
//				Bitmap bitmap=(Bitmap) bundle.get("data");
				 
				 FileInputStream inputStream;
				try {
					inputStream = new FileInputStream(mFilepath);
					
					Bitmap bitmap=BitmapFactory.decodeStream(inputStream);
					
					imageView.setImageBitmap(bitmap);
					
					try {
						inputStream.close();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
		}
   }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章