Ich versuche, eine kleine App für Android zu erstellen, die ein Bild mit der Kamera des Geräts aufnimmt und einen PNG-Rahmen darüber legt. Auf diese Weise wird das endgültig gespeicherte Bild einen Strand oder Hüte oder irgendetwas darüber haben. Hat jemand ein Beispielprogramm mit diesem Verhalten?
Antwort
Zu viele Anzeigen?
frikkenator
Punkte
241
Werfen Sie einen Blick in die SDK-Dokumentation zur Verwendung der Bilderfassungsfunktion aquí .
Ich beginne meine Bilderfassung wie folgt:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE ist ein privates Mitglied in meiner Aktivität:
private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;
Dann erhalten Sie das Byte-Array von der Kamera zurück, indem Sie den folgenden onActivityResult-Handler verwenden:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == Activity.RESULT_OK) {
Bitmap bmp = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
AddImage(byteArray);
} else if (resultCode == Activity.RESULT_CANCELED) {
// User cancelled the image capture
} else {
// Image capture failed, advise user
}
}
}
Danach können Sie das Bild nach Belieben bearbeiten.