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