- Forum-Beiträge: 49
22.11.2012, 20:10:00 via Website
22.11.2012 20:10:00 via Website
Ich habe ein Problem mit meiner App und hoffe das ihr mir helfen könnt. Ich würde gerne ein Bild mit der Kamera aufnehmen, dieses zuschneiden und anschliessend in der App anzeigen lassen. Sobald ich die App ausführe und ich auf den Button klicke wird die Kamera auch gestartet, doch nachdem ich das Bild aufgenommen habe komme ich einfach zur App zurück. Was muss ich machen damit nach der Aufnahme direkt das zuschneiden gestartet wird? Auf Linie 38 wird mir von Eclipse angezeigt: The method onActivityResult(int, int, Intent) from the type new View.OnClickListener(){} is never used locally
So sieht der Quellcode aus:
2import android.os.Bundle;
3import android.provider.MediaStore;
4import android.app.Activity;
5import android.content.ActivityNotFoundException;
6import android.content.Intent;
7import android.graphics.Bitmap;
8import android.view.Menu;
9import android.view.View;
10import android.widget.Button;
11import android.widget.ImageView;
12import android.widget.Toast;
13
14
15public class MainActivity extends Activity {
16
17 final int Aufnahme = 1;
18 private Uri bildUri;
19 final int PIC_CROP = 2;
20
21 @Override
22 public void onCreate(Bundle savedInstanceState) {
23 super.onCreate(savedInstanceState);
24 setContentView(R.layout.activity_main);
25
26 Button startButton = (Button) findViewById(R.id.cameraButton);
27
28 startButton.setOnClickListener(new View.OnClickListener() {
29
30 public void onClick(View v) {
31 if (v.getId() == R.id.cameraButton) {
32 //Ruft die Kamera auf
33 Intent cameraIntent = new Intent (MediaStore.ACTION_IMAGE_CAPTURE);
34 startActivityForResult(cameraIntent, Aufnahme);
35 }
36 }
37
38 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
39 //Überprüft den von der Kamera zurückgegebenen wert
40 if (resultCode == RESULT_OK) {
41 if(requestCode == Aufnahme){
42 bildUri = data.getData();
43 //führt die zuschneiden Action aus
44 performCrop();
45 }
46 else if(requestCode == PIC_CROP){
47 Bundle extras = data.getExtras();
48 Bitmap finalesBild = extras.getParcelable("data");
49 ImageView anzeigeBild = (ImageView)findViewById(R.id.picture);
50 anzeigeBild.setImageBitmap(finalesBild);
51 }
52 }
53 }
54
55 private void performCrop(){
56 try {
57 Intent cropIntent = new Intent("com.android.camera.action.CROP");
58 cropIntent.setDataAndType(bildUri, "image/*");
59 cropIntent.putExtra("crop", "true");
60 cropIntent.putExtra("aspectX", 1);
61 cropIntent.putExtra("aspectY", 1);
62 cropIntent.putExtra("outputX", 256);
63 cropIntent.putExtra("outputY", 256);
64 cropIntent.putExtra("return-data", true);
65 startActivityForResult(cropIntent, PIC_CROP);
66 }
67 //Gibt eine Warnmeldung aus wenn das Gerät die zuschneiden Funktion nicht unterstützt
68 catch(ActivityNotFoundException anfe){
69 String errorMessage = "Dein Smartphone kann das Bild nicht zuschneiden";
70 Toast errorMessageCROP = Toast.makeText(MainActivity.this, errorMessage, Toast.LENGTH_SHORT);
71 errorMessageCROP.show();
72 }
73 }
74
75 });
76 }
77
78 @Override
79 public boolean onCreateOptionsMenu(Menu menu) {
80 getMenuInflater().inflate(R.menu.activity_main, menu);
81 return true;
82 }
83}
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.