對於單純透過相機取得照片,使用預設相機拍攝就好
因為大部份預設都自動對焦、調整相機細節等等,很方便
除非你是要自己寫專屬的相機,就要自己去刻那些Code
在這裡提供使用預設相機拍攝
首先在Manifest加入使用相機的權限
<!-- Camera --> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" />
接在著程式寫入
//設定檔名 File tmpFile = new File( Environment.getExternalStorageDirectory(), "image.jpg"); Uri outputFileUri = Uri.fromFile(tmpFile); Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); //利用intent去開啟android本身的照相介面 intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); startActivityForResult(intent, 0);
其中裡面的
new File( 路徑, 檔名)
Environment.getExternalStorageDirectory():指SD Card 路徑
這個也是之後拍完照後會儲存至指定的路徑
當拍完後會去丟一個回應,接著再用ImageView物件去顯示,顯示方如下
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(D) Log.e(TAG, "--- onActivityResult ---"); if (resultCode == RESULT_OK) { String img_address = Environment.getExternalStorageDirectory()+"image.jpg"; Bitmap bmp = BitmapFactory.decodeFile(img_address); //利用BitmapFactory去取得剛剛拍照的圖像 ImageView ivTest = (ImageView)findViewById(R.id.imageView1); ivTest.setImageBitmap(bmp); } }
沒有留言:
張貼留言