2012-04-10 6 views
0

adroidでCAMERAインテントを使用して画像を撮影し、画像ビュー内に表示しようとしています。以下のコードは、写真を撮るまでうまく動作します。それから私は "V"ボタンで確認できず、私の活動に戻ることができます。 「X」ボタンをクリックすると、アンドロイドは写真なしのアクティビティに戻りますが、「V」をクリックして画像を確認しても、何も起こりません。カメラの画面にまだ固執しています。Android camera stuck - 画像をキャッチできません

私はAPI 14を使用しており、アンドロイド4.0.2で仮想デバイスと物理デバイスをテストしています。

私の間違いはどこですか?

import java.io.File; 
import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.os.Environment; 
import android.provider.MediaStore; 
import android.view.View; 
import android.widget.Button; 
import android.widget.ImageView; 

public class HandScryActivity extends Activity { 

    private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100; 
    private Uri uriSavedImage; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.handscry); 
     // Makes the filename 
     File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages"); 
     imagesFolder.mkdirs(); 
     File image = new File(imagesFolder, "image_001.jpg"); 
     uriSavedImage = Uri.fromFile(image); 
    } 

    // Handles onGame clicked buttons 
    public void btnHandClick(View v) { 
      Button clickedButton = (Button) v; 
     // according to clicked button 
     switch (clickedButton.getId()) { 
      case R.id.btnBackToGame: 
       this.finish(); 
       break; 
      case R.id.btnTakePicture: 
       Intent imageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);    
       imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); 
       startActivityForResult(imageIntent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 
       break;    
      default: 
       break; 
     } 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     ImageView img = (ImageView) findViewById(R.id.imgHand); 
      if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { 
      // Display image 
       if (resultCode == RESULT_OK) { 
        img.setImageURI(uriSavedImage);         
      } else if (resultCode == RESULT_CANCELED) { 
       // User cancelled the image capture 
      } else { 
       // Image capture failed, advise user 
      } 
     } 
    } 
} 

答えて

1

ここでは、他の人が私の間違いでつまずく場合があります。私はウェブサイトからそのサンプルを得たが、この部分はスタックアンドロイドに思えるし、成功した場合には「OnActivityResult」を取得することはできません。

// Makes the filename 
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages"); 
imagesFolder.mkdirs(); 
File image = new File(imagesFolder, "image_001.jpg"); 
uriSavedImage = Uri.fromFile(image); 

はその

File image = new File(Environment.getExternalStorageDirectory(), "test.jpg");   
uriSavedImage = Uri.fromFile(image); 
に置き換えてください
関連する問題