2011-12-27 9 views
1

私はAndroidプログラミングには新しく、写真を撮って保存するJavaでアプリケーションを作成しています。 インテントで作成しましたが、実行中のonActivityResultは表示されません。カメラアプリを作成 - 受信

私は自分の携帯電話(サムスンギャラクシーS)にそれをテストしました。写真を撮ると、その写真のプレビューが2つのボタンと1つの保存ともう1つのキャンセルを持って表示されます。私はこれを行うために私のコードに何かを追加していないので、私はそれがカメラが何かだと思う。画像をキャプチャした後に、onActivityResultを実行したい(プレビューで[保存]ボタンを押した後に)。

しかし、プレビューでボタンセーブを押した後に、結果を返す方法は、onActivityResultです。

私は保存を押した後、私のアプリ全体が終了したことを伝えることを忘れました。ここで は私のコードは、それはあなたが両方ライブラリからとカメラから得るのを助ける、あなたはそれを少し変更する必要があります、以下のコードを試してみてください

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    TakePicButton = (Button) findViewById(R.id.TakePicture); 
    TakePicButton.setOnClickListener((android.view.View.OnClickListener) this); 

} 

@Override 
public void onDestroy(){ 
    super.onDestroy(); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { 
     if (resultCode == RESULT_OK) { 
      // Image captured and saved to fileUri specified in the Intent 
      Toast.makeText(this, "Image saved to:\n" + data.getData(), Toast.LENGTH_LONG).show(); 

     } else if (resultCode == RESULT_CANCELED) { 
      Toast.makeText(this, "Picture was not taken", Toast.LENGTH_SHORT); 

     } else { 
      Toast.makeText(this, "Picture was not taken", Toast.LENGTH_SHORT); 

     } 
    } 

public void onClick(View v) { 
// TODO Auto-generated method stub 
if(v.getId() == R.id.TakePicture){ 

    // create Intent to take a picture and return control to the calling application 
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

    fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name 

    // start the image capture Intent 
    startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 
} 
} 
+1

「onActvityResult()」は、保存ボタンを押すと自動的に呼び出されます。コードなしで何が間違っているのかを知ることは難しいので、意図と、完全なonActivityResult()メソッドを使ってカメラのアクティビティをどのように呼び出すかを示すコードスニペットを投稿してください。ありがとう。 –

+0

ちょっと私のコードを入れました。あなたが何かを考えるなら私に教えてください。ありがとう –

答えて

0

で、SELECT_PICTUREは、ライブラリから画像を取得するために使用されています

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    switch (requestCode) { 
    case SELECT_PICTURE: 
      Uri selectedImageUri = data.getData(); 
      filemanagerstring = selectedImageUri.getPath(); 
      selectedImagePath = getPath(selectedImageUri); 
      if (selectedImagePath != null) 
       myFile = new File(selectedImagePath); 
      else if (filemanagerstring != null) 
       myFile = new File(filemanagerstring); 
      if (myFile != null) { 
       Bitmap bmp_fromGallery = decodeImageFile(selectedImagePath); 


     break; 
    case CAMERA_REQUEST: 

      Bitmap bmp_Camera = (Bitmap) data.getExtras().get("data"); 

     break; 
    default: 
     break; 
    } 
} 
+0

あなたのコードを試しましたが、SELECT_PICTUREまたはCAMERA_REQUESTはコードのエラーです。それはなぜ認識しないのですか?ありがとう –

+0

プライベート静的最終的なintを追加するSELECT_PICTURE = 1; \tプライベートstatic final int CAMERA_REQUEST = 2; –

+0

私は試しましたが動作しませんでした。 –

関連する問題