我寫了一個簡單的拍照功能,然後希望在拍完照時他會顯示在畫面上,
可是在自訂路徑的情況下,照片都無法顯示,
以下是我的程式碼:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera_easy);
Button buttonCamera = (Button)findViewById(R.id.button);
buttonCamera.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
Intent intent = new
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
//設定圖片的儲存位置,以及檔名
File tmpFile = new File(
Environment.getExternalStorageDirectory(),
"image.jpg");
outputFileUri = Uri.fromFile(tmpFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, 0);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent
data) {
if (resultCode == RESULT_OK) {
Bitmap bmp = BitmapFactory.decodeFile(outputFileUri.getPath());
ImageView ivTest = (ImageView)findViewById(R.id.imageView);
ivTest.setImageBitmap(bmp);
}
super.onActivityResult(requestCode, resultCode, data);
}
列印出的 outputFileUri.getPath = /storage/emulated/0/image.jpg
並附上AndroidManifest.xml的拍照相關
<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" />
麻煩了,這困擾我一天了
手機有沒有root? 沒有的話有可能抓不到另外有些手機external會指到手機的external而不是sd卡至於怎麼抓到更外層的external 我看了很多so文章沒找到至少別人可以的我不靈..QQ
作者:
ra213671 (史靈根博士)
2015-07-25 00:13:00用sendBroadcast告訴系統照片的存在樓上的問題我也想知道 SDcard的路徑我一直抓不到
作者: egaryer (egaryer) 2015-07-25 00:42:00
權限加個READ_EXTERNAL_STORAGE看看?
作者:
loxyz (loxyz)
2015-07-27 09:38:00Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) 可以先改到這試試
作者: cuda (Cuda) 2015-07-27 11:48:00
可以看一下你的 layout 怎麼寫的嗎? activity_camera_easy另外有宣告WRITE_EXTERNAL_STORAGE就隱含有READ的權限
作者:
csk (:))
2015-07-27 18:04:00會不會是 file access 的問題,file.setReadable之類的試試看
作者: VSei (Chaos) 2015-08-12 08:50:00
應該是路徑取得方式的問題, Uri uri = data.getData();BitmapFactory.decodeStream(cr.openInputStream(uri))google這幾個看看, intent可用,多圖顯示要注意memory leak.