2017-02-12 4 views
1

文法上の誤りがあれば、それをどうぞ。フラグメント内のカメラを扱う

mainActivityとは別のアクティビティでカメラを使用したいと思います。

static final int REQUEST_IMAGE_CAPTURE = 1; 

private void dispatchTakePictureIntent() { 
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
     startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 
    } 
} 

しかし、私は別の活動私にこのコードを置く場合、この関数は、実際には、唯一のMainActivityに正常に動作します: は、私は、この機能を使用する必要が言うグーグルTaking Photos Simplyにこの簡単なチュートリアルを見つけましたこのエラーが発生します: メソッド 'getPackageManager()'を解決できません。

いくつかのアイデア?

ありがとうございました!

答えて

0

次のコードを試してみてください:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
} 

は、その後、あなたのフラグメントにこれを追加します:あなたの親アクティビティのonActivityResult()をオーバーライド

static final int REQUEST_IMAGE_CAPTURE = 1; 

Context c; 
private void dispatchTakePictureIntent() { 
    Fragment yourFragment = this; 
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    yourFragment.startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch (requestCode) { 
    case 1: 
     if (resultCode == Activity.RESULT_OK) { 
       //Do something with your captured image. EX:- 
       try { 
        Uri selectedImage = data.getData(); 
        String[] filePathColumn = { MediaStore.Images.Media.DATA }; 
        Cursor cursor = getActivity().getContentResolver().query(selectedImage, 
      filePathColumn, null, null, null); 
        cursor.moveToFirst(); 
        int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
        String picturePath = cursor.getString(columnIndex); 
        cursor.close(); 
        imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath)) 
       } catch (FileNotFoundException e) { 

         e.printStackTrace(); 

       }     
      } 
     } 
    } 
+0

ありがとう!今私はエラーは発生しませんが、カメラを開くとアプリケーションがクラッシュします。 – RvGPredator

+0

多分このコードは間違っていますか? http://pastebin.com/EuVz2SXH – RvGPredator

+0

どのエラーが表示されますか? onActivityResult()メソッドでstartActivityResultを処理しませんでした。これが原因で問題が発生している可能性があります。 – tahsinRupam

0

は、恐れ入りますが、Iなぜ、私がNexus 5Xでこのアプリケーションを試してみると、写真が品質に損なわれるのはなぜですか?彼はImageView。アプリケーションイメージ(画像ビュー):i.imgur.com/VunFaHF.png?1カメラ画像:i.imgur.com/wjJ2a4w.jpg

関連する問題