Ich versuche, eine Standardkamera mit Intent sowohl für die Bild- als auch für die Videoaufnahme zu verwenden. wenn ich an der Frontkamera umschalte und die Bild- oder Videovorschau (aufgenommenes Bild oder Video) aufnehme, wird invertiert. So jetzt möchte ich setzen preScale in frontCamera. Aber wusste nicht, wo man Kamera ID in Standard Kamera finden. !!Wie überprüfe ich die Front Cam ID? Auch das aufgenommene Bild wird von der Frontkamera gespiegelt.
Hinweis: Dies ist keine benutzerdefinierte Kamera. !!
Problem ist: Captured Image von Front-Kamera bekommen Bild ist Spiegelbild. Schauen Sie hinein, wenn es ein Problem gibt? Ich habe nicht bekommen! Thx
Sogar gespeichertes aufgenommenes Bild in SDCard auch Spiegelbild! Jetzt, wie preScale oder irgendeine andere Idee, iT zu korrigieren ??
Hilfe!
photo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
captureImage();
}
});
CatureImage Methode
private void captureImage() {
Context context = this;
PackageManager packageManager = context.getPackageManager();
if (packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA) == false
&& packageManager
.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY) == false) {
Toast.makeText(CameraRolling2.this, "camera not available'",
Toast.LENGTH_SHORT).show();
return;
}
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent
.resolveActivity(CameraRolling2.this.getPackageManager()) != null) {
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException ex) {
// Error occurred while creating the File
Toast.makeText(CameraRolling2.this, "Error connecting camera",
Toast.LENGTH_SHORT).show();
ex.printStackTrace();
}
// Continue only if the File was successfully created
if (photoFile != null) {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photoFile));
startActivityForResult(takePictureIntent,
CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
showImg.setImageBitmap(null);
}
}
}
@SuppressLint("SimpleDateFormat")
private File createImageFile() throws IOException {
// Create an image file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss")
.format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File image = File.createTempFile(imageFileName, ".jpg", storageDir);
mCurrentPhotoPath = image.getAbsolutePath();
Log.v("createImageFile", "" + mCurrentPhotoPath);
return image;
}
und Meine Tätigkeit Ergebnis
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE
&& resultCode == Activity.RESULT_OK) {
File imgFile = new File(mCurrentPhotoPath);
if (imgFile.exists()) {
BitmapFactory.Options bitmap_options = new BitmapFactory.Options();
bitmap_options.inSampleSize = 4;
bitmap_options.outHeight = 200;
bitmap_options.outWidth = 200;
Bitmap myBitmap = BitmapFactory.decodeFile(
imgFile.getAbsolutePath(), bitmap_options);
showImg.setImageBitmap(myBitmap);
if (showImg.getDrawable() == null) {
Log.e("IMAGEVIEW", "NULL IMAGE");
imageflag = false;
} else {
Log.e("IMAGEVIEW", "IMAGE VIEW UPDATED");
imageflag = true;
}
}
}
if (resultCode == Activity.RESULT_CANCELED) {
Toast.makeText(CameraRolling2.this, "Camera option canceled",
Toast.LENGTH_SHORT).show();
imageflag = false;
}
invertiert bedeutet bekommen Spiegelbild –
@HarshBhavsar: Unabhängig davon, haben Sie keine Möglichkeit, eine Drittanbieter-Kamera-App zu zwingen, eine bestimmte Hardware-Kamera (Front-/Rückseite/etc.) Zu verwenden. Sie haben keine Möglichkeit festzustellen, welche Kamera verwendet wurde. Sie können nicht feststellen, ob der Benutzer in der Kamera-App das Bild umgedreht, zugeschnitten oder anderweitig bearbeitet hat. – CommonsWare
@CommonsWare Bearbeitete Frage! Ich hoffe du findest etwas !!!! –