Foto w/ Kamera-Vorsatz und Anzeige in der Bildansicht oder textView?

Ich habe eine Frage, wie man ein Bild mit der Kamera Vorsatz (oder Kamera-API) und dann bringen Sie das Bild in eine Bildansicht für mich, um die Anzeige in meiner Anwendung. Dies ist, was ich habe, so weit.

Ich setup eine Taste

Button btnPicture = (Button) findViewById(R.id.btn_picture);
    btnPicture.setOnClickListener(this);

Richte ich eine Kamera, Methode

private void Camera() {
    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(intent, TAKE_PICTURE_CODE);
    intent.setAction(Intent.ACTION_GET_CONTENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    startActivityForResult(intent, REQUEST_CODE);
}

Und das ist, wo ich bin verloren. Ich bin versucht, um das Bild, das ich nahm.

    private void processImage(Intent intent) {
    setContentView(R.layout.imagelayout);
    ImageView imageView = (ImageView)findViewById(R.id.image_view);
    cameraBitmap = (Bitmap)intent.getExtras().get("data");
    imageView.setImageBitmap(cameraBitmap);
}

Meine Absicht ist, um das Bild anzuzeigen, das Sie nahm innerhalb image_view. Ich erhalte keine Fehler, nichts passiert. Wenn ich mit dem Bild, bin ich aufgefordert, entweder ein anderes Bild oder nachdem ich das Gerät zurück-Taste die Anwendung Kraft schließt. Es scheint, dass ich aus meiner Anwendung vollständig, und die Rückkehr ist ein großes Thema. Irgendwelche Vorschläge? Was bin ich?

O ja, und hier ist mein onActivityResult

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
        if(TAKE_PICTURE_CODE == requestCode) {

        Bundle extras = data.getExtras();
        if (extras.containsKey("data")) {
            Bitmap bmp = (Bitmap) extras.get("data");
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bmp.compress(Bitmap.CompressFormat.PNG, 100, baos);
            byte[] image = baos.toByteArray();
            if (image != null) {
                Log.d(TAG, "image != null");
            }

        } else {
            Toast.makeText(getBaseContext(), "Fail to capture image", Toast.LENGTH_LONG).show();
        }

    }
}

Ich versuche, um das Bild in getExtras, und speichern Sie es dann in ein ByteArray. War etwas anderes, was ich versuche zu tun. Nicht sicher, wie es kommt alles zusammen.

  • Veröffentlichen Sie code für onActivityResult()..
  • Hier ist ein schönes Projekt, mit viel von der Komplexität: github.com/CameraKit/camerakit-android. Keine Notwendigkeit für onActivityResult(..) und prägnant onRequestPermissionsResult(..) Umsetzung. In einem SO " Ozean der [100+ lines] Antworten auf diese Frage, ein Großes danke an: stackoverflow.com/a/43707269/2162226
Schreibe einen Kommentar