2017-04-11 11 views
0

カメラから画像をキャプチャし、画像パスに基づいて結果を表示できるアプリを作成しようとしています。画像をキャプチャした後の更新ギャラリーandroid

btnImg.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      try { 
       Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 

       file = new File(Environment.getExternalStorageDirectory() + File.separator + "Nama_foto_" + waktu + ".jpg"); 

       intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); 
       intent.putExtra("return-data", true); 

       getParentFragment().startActivityForResult(intent, CAPTURE_IMAGE); 
      }catch (ActivityNotFoundException anfe){ 
       //display an error message 
       String errorMessage = "Whoops - your device doesn't support capturing images!"; 
       Toast toast = Toast.makeText(getActivity(), errorMessage, Toast.LENGTH_SHORT); 
       toast.show(); 
      } 
     } 
    }); 

以下のように、空の文字列としてOnCreateView外宣言コード

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == RESULT_OK) { 
     if(requestCode == CAPTURE_IMAGE) { 

      performCrop(); 
     } 
     else if(requestCode == PIC_CROP){ 
      //get the returned data 
      Bundle extras = data.getExtras(); 
      //get the cropped bitmap 
      Bitmap thePic = extras.getParcelable("data"); 

      picturePath = file.getAbsolutePath(); 

      try { 
       ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
       thePic.compress(Bitmap.CompressFormat.JPEG, 80, bytes); 

       file.createNewFile(); 
       FileOutputStream out = new FileOutputStream(file); 
       out.write(bytes.toByteArray()); 
       out.close(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      //retrieve a reference to the ImageView 
      //ImageView picView = (ImageView)findViewById(R.id.picture); 
      //display the returned cropped image 
     imgView.setImageBitmap(thePic); 
     } 

     try { 

     }catch (Exception e) { 
      Toast.makeText(getActivity(), "Maaf gagal mengambil foto.", Toast.LENGTH_LONG).show(); 
      e.printStackTrace(); 
     } 
} 

}

可変picturePath以下イム書き込みを取り込むカメラからresponとして画像を取り込む処理ボタン内部。 問題は、私がアプリを実行して画像をキャプチャするたびです。画像はギャラリーにすぐに表示されませんでしたが、ギャラリーで画像を見るためにアプリを再実行する必要があります(アンドロイドスタジオを介して)。それはoncreateviewの中の何かがイベントを引き起こすようです。しかし、私はまだ何を理解することはできません。

Plsで問題を解決できます。おかげ

答えて

1

は、それはあなたの質問が異なっ言い換えるべきであると思われる: これはあなたの問題

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(myNewFile))); 

参照解決することがあります。 How can I update the Android Gallery after a photo?

+0

を私は上記のコードを宣言する必要があり、私の質問を,,,変わったのか? – BrenDonie

+0

アンドロイドギャラリーで試したurコードは表示/保存されていません。しかし、私のアプリでは、画像が表示されました – BrenDonie

+0

ああ、onActivityResultの中に入れてください。 Okは働きました....とても大変ありがとうございます:) – BrenDonie

関連する問題