2012-04-10 8 views
0

Ich versuche, die CAMERA Absicht auf Adroid zu verwenden, um ein Bild zu machen und es in einer Bildansicht zu zeigen. Der folgende Code funktioniert einwandfrei, bis ich das Bild aufgenommen habe. Dann kann ich nicht mit "V" bestätigen und zu meiner Aktivität zurückkehren. Wenn ich auf "X" button android geht zurück zu meiner Aktivität mit kein Foto, aber wenn ich auf "V" klicken, um das Bild zu bestätigen, passiert nichts und ich bin immer noch auf dem Bildschirm der Kamera fest.Android Kamera stecken - kann das Bild nicht

Ich benutze API 14 und Tests auf virtuellen und physischen Geräten mit Android 4.0.2.

Wo ist mein Fehler?

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 
      } 
     } 
    } 
} 

Antwort

1

Hier gehen Sie die Lösung, nur für den Fall, dass jemand anderes in meinem Fehler stolpern wird. Ich habe, dass Probe von einer Website, aber dieser Teil scheint zu stecken Android und kann nicht „onActivityResult“ im Erfolgsfall erhalten:

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

soll mit diesen

File image = new File(Environment.getExternalStorageDirectory(), "test.jpg");   
uriSavedImage = Uri.fromFile(image); 
ersetzt werden