2017-05-03 21 views
0

カメラから画像をキャプチャして画像をデバイスギャラリーに保存するコードがあります。 onActivityResultsメソッドの後に私は画像のURLを取得し、私はデバイス上で自分のギャラリー上の画像を見ることができます。何らかの理由でそのイメージを呼び出すことはできません。 URL文字列iam getは/storage/emulated/0/Pictures/1493836160696.jpgです。何か案が?画像ビューでキャプチャ画像を表示できません

public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.cancel_btn: 
      finish(); 
      break; 
     case R.id.next_btn: 

      break; 
     case R.id.camera_btn: 
      Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
       String fileName = "temp.jpg"; 
       ContentValues values = new ContentValues(); 
       values.put(MediaStore.Images.Media.TITLE, fileName); 
       mCapturedImageURI = getContentResolver() 
         .insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
           values); 
       takePictureIntent 
         .putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI); 
       startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 
       break; 
      } 
    } 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, 
              Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch (requestCode) { 
     case REQUEST_IMAGE_CAPTURE: 
      if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 
       String[] projection = {MediaStore.Images.Media.DATA}; 
       Cursor cursor = managedQuery(mCapturedImageURI, projection, null, null, null); 
       int column_index_data = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
       cursor.moveToFirst(); 
       String picturePath = cursor.getString(column_index_data); 


       Uri u = Uri.parse(picturePath); 
       Log.d("path", String.valueOf(u)); 
       //ALBUM_ART_URI = Uri.parse(String.valueOf(picturePath)); 
       Picasso.with(AddNewDish.this).load(u).into(mImageView); 

      } 
    } 
} 
+0

エラーログがありますか? – PYPL

+0

テストするSdkのバージョンは何ですか? sdk> = 23の場合、実行時のアクセス権が必要です... – rafsanahmad007

答えて

0

caseであなたのコードを置き換えます。あなたのプロセスは、カメラながら終了させることができるようまた、あなたは、あなたが保存されたインスタンスの状態BundlemCapturedImageURIを保持していることを確認する必要があり

case REQUEST_IMAGE_CAPTURE: 
     if (resultCode == RESULT_OK) { 
      Picasso.with(AddNewDish.this).load(mCapturedImageURI).into(mImageView); 
     } 

アプリはフォアグラウンドにあります。

ACTION_IMAGE_CAPTUREの使用方法はthis sample appとなり、結果はUriとなります。

+0

ありがとう、偉大な作業 – Elidotnet

関連する問題