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ägnantonRequestPermissionsResult(..)
Umsetzung. In einem SO " Ozean der [100+ lines] Antworten auf diese Frage, ein Großes danke an: stackoverflow.com/a/43707269/2162226
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Methode, die ich gefunden, um einfach und hilfreich ist dies:
MainActivity
und dann in Ihrer Aktivität onActivityResult Methode:
GetImageThumbnail.java
und dann auf die Bildansicht onclick Methode wird so sein:
Foto zu machen richtig, sollten Sie es speichern in temp-Datei, da die Daten in Folge von Vorsatz kann null sein:
Bekomme und dann Foto aus Uri:
getCameraTempFileUri()
.