2016-05-29 8 views
0

Ich habe eine Aktivität, die die Kamera API startet. Ich möchte die Schaltfläche (mit der ID "cptr_1") drücken und ein Bild machen und es in einer anderen Aktivität (PhotoPreview.class) anzeigen, wo ich Fotoeffekte hinzufügen kann. Ich brauche nur den Code für:Ich muss Bild erfassen und in einer anderen Aktivität anzeigen

ImageButton capture_1 = (ImageButton)findViewById(R.id.cptr_1); 
    capture_1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

     } 
    }); 

Und dann, wie das Bild auf PhotoPreview.class übertragen

Antwort

0

Sie entweder einen Intent Bild aufzunehmen verwenden oder eine benutzerdefinierte Kameraklasse für camera intent für custom camera class verwenden

Wenn Sie bereits eine benutzerdefinierte Kameraklasse haben, können Sie diesen Code verwenden "Kamera cam = Camera.open (cameraId);

capture_1.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View v) { 
     try { 

      cam.takePicture(null, null, mPicture); 


     } catch (Exception e) { 

     } 
    } 
}); 


private PictureCallback mPicture = new PictureCallback() { 

    public void onPictureTaken(final byte[] data, Camera camera) { 

     try { 

      File mediaFile = new File("file path/filename.jpg"); 

      FileOutputStream fos = new FileOutputStream(mediaFile); 
      fos.write(data); 
      fos.close(); 
      cam.startPreview(); 


     } catch (Exception e) { 
     } 
    } 
};` 
+0

Thank hinzufügen Ich werde einen Blick darauf werfen. Ich baue die Kamera bereits mit Blick auf die Oberfläche. Alles was ich will ist der Code, um Foto zu machen und es anzuzeigen ... –

1

Sie können Fotos mit der Kamera-App des Geräts aufnehmen.

Also, wenn Sie auf:

static final int ImageValue= 1; 

    ImageButton capture_1 = (ImageButton)findViewById(R.id.cptr_1); 
     capture_1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent takepic = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
       if (takepic.resolveActivity(getPackageManager()) != null) { 
       startActivityForResult(takepic, ImageValue); 
       } 
      } 
     }); 

Sobald Erfassung abgeschlossen ist das Bild wieder von der Kamera-Anwendung erhalten

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == ImageValue && resultCode == RESULT_OK) { 
     Bundle extras = data.getExtras(); 
     Bitmap imageBitmap = (Bitmap) extras.get("data"); 
     } 
} 

Dann Bitmap auf eine andere Tätigkeit senden.

Innerhalb der Aktivität, die die Kamera-API schreiben beginnt:

Intent intent = new Intent(this, PhotoPreview.class); 
intent.putExtra("GetBitmap", bitmap); 

Innen PhotoPreview.class schreiben:

Intent intent = getIntent(); 
Bitmap bitmap = (Bitmap) intent.getParcelableExtra("GetBitmap"); 

Auch benötigen Sie können diese Berechtigungen Android Manifest

<uses-feature android:name="android.hardware.camera" 
        android:required="true" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
+0

ist alles gut außer einer Sache. "Bitmap" in ("GetBitmap", Bitmap); werde nicht aufgelöst .. was mache ich falsch? –

+0

Bitmap-Bitmap = imageBitmap; – BooDoo

+0

dann Bitmap an eine andere Aktivität senden – BooDoo

Verwandte Themen