Activity1 soll auf Activity2 warten (Camera-Intent)

aquarium1974

Aktives Mitglied
Hallo Forum,

eine Frage zu Android,
ich hab da so ein Problemchen.....


Meine App ruft an einer Stelle die Kamera auf, der Nutzer kann ein Foto machen. Anschließend will ich das Bild sofort als Thumbnail darstellen.

Ich habe bemerkt, daß der Code im Hintergrund weiterläuft und die Prüfung ob das File existiert false ergibt, da der Nutzer noch kein Bild gemacht hat bzw die Kamera die Aufnahme noch nicht beendet hat.

Wenn ich das im Debugger laufen lasse und an der Stelle den Code anhalte, an der ich auf das File prüfe und nach Aufnahme durch die Kamera incl. Schreiben auf SD-Karte den Code weiterlaufen lasse findet die App auch das File und stellt es als Thumbnail dar.

Meine Frage ist nun wie ich das realisiere, das die Software solange wartet, bis das Camera-Intent beendet wurde.

Muss ich da mit Threads arbeiten?
Java:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

			

			JpgPath);
				BitmapFactory.Options options = new BitmapFactory.Options();
				options.inSampleSize = 2;
				Bitmap bm = BitmapFactory.decodeFile(myJpgPath, options);
				jpgView.setImageBitmap(bm);
			}

In Zeile 33 habe ich einen Breakpoint gesetzt und so das unterschiedliche Verhalten herausgefunden....

Hat jemand einen Tipp?

Vielen Dank.

Aquarium1974
 
Zuletzt bearbeitet:
Java:
	...
	Uri outputFileUri = Uri.fromFile(sdDir);
	intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
	startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
	if (resultCode == ... ) {
	...
	String myJpgPath = "/sdcard/parksuender/foto_gespiegelt.jpg";
	if (sdDir.exists()) {
	....
}

Und bitte poste nicht mit 100 Leerzeilen; ist äußerst unangenehm.
 
[OT]PS: Wenn du die Antwort auch selbst gefunden hast, dann wäre es für alle sehr hilfreich, wenn du die Lösung auch postest.
Dann hätten alle was vom Forum.

(Das gilt sogar, wenn es nur ein banaler Tippfehler ist, weil dann andere mit ähnlichen Problemen nicht an falscher Stelle suchen.)[/OT]
 
Nachtrag:
Die Lösung

Java:
Uri outputFileUri = Uri.fromFile(sdDir);
			intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
			startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
			this.setResult(CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE, intent);
			strFilename = "foto";


protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
		File sdDir;
		File root = new File(Environment.getExternalStorageDirectory()
				+ File.separator + "parksuender" + File.separator);

		sdDir = new File(root, "foto_gespiegelt.jpg");
		ImageView jpgView = (ImageView) findViewById(R.id.jpgview);
		String myJpgPath = "...";
		String myJpgPath2 = "...";
		
		if (sdDir.exists()) {
			spiegelnBild(myJpgPath);
			BitmapFactory.Options options = new BitmapFactory.Options();
			options.inSampleSize = 2;
			Bitmap bm = BitmapFactory.decodeFile(myJpgPath2, options);
			jpgView.setImageBitmap(bm);
		}

	}
 
Danke für die Lösung,

(Auch wenn jetzt wiederum niemand mehr das Problem nachvollziehen kann, da du es in deiner Frage wegeditiert hast)😀
 

Zurück
Oben