Android-камера сохраняет изображения как в портретном, так и в ландшафтном режиме - PullRequest
0 голосов
/ 03 апреля 2012

Я делаю приложение для Android, и я хочу использовать камеру в этом.Я правильно реализовал код, но проблема, с которой я сталкиваюсь, заключается в том, что захваченное изображение сохраняется дважды: одно горизонтальное, а другое вертикальное.Это странная проблема, и я не могу ее понять.Ниже приводится код, который я использую.

AlertDialog.Builder builder = new AlertDialog.Builder(
                FaceconActivity.this);
        builder.setTitle("Share a Photo");
        builder.setItems(items, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int item) {
                if (item == 0) {
                    values = new ContentValues();
                    values.put(MediaStore.Images.Media.TITLE, "New Picture");
                    values.put(MediaStore.Images.Media.DESCRIPTION,
                            "From your Camera");
                    imageUri = getContentResolver().insert(
                            MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                            values);
                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
                    startActivityForResult(intent, PICTURE_RESULT);
                } else if (item == 1) {
                    try {
                        Intent intent = new Intent();
                        intent.setType("image/*");
                        intent.setAction(Intent.ACTION_GET_CONTENT);
                        startActivityForResult(
                                Intent.createChooser(intent, "Select Picture"),
                                PICK_IMAGE);
                    } catch (Exception e) {
                        Toast.makeText(getApplicationContext(), e.getMessage(),
                                Toast.LENGTH_LONG).show();
                        Log.e(e.getClass().getName(), e.getMessage(), e);
                    }
                }
            }
        });
        builder.show();

и

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
        case PICK_IMAGE:
            if (resultCode == Activity.RESULT_OK) {
                Uri selectedImageUri = data.getData();
                try {
                    // OI FILE Manager
                    String filemanagerstring = selectedImageUri.getPath();
                    // MEDIA GALLERY
                    String selectedImagePath = getPath(selectedImageUri);
                    if (selectedImagePath != null) {
                        filePath = selectedImagePath;
                    } else if (filemanagerstring != null) {
                        filePath = filemanagerstring;
                    } else {
                        Toast.makeText(getApplicationContext(), "Unknown path",
                                Toast.LENGTH_LONG).show();
                        Log.e("Bitmap", "Unknown path");
                    }

                    if (filePath != null) {
                        decodeFile(filePath);
                    } else {
                        bitmap = null;
                    }
                } catch (Exception e) {
                    Toast.makeText(getApplicationContext(), "Internal error",
                            Toast.LENGTH_LONG).show();
                    Log.e(e.getClass().getName(), e.getMessage(), e);
                }
            }
            break;
        case PICTURE_RESULT:
            if (requestCode == PICTURE_RESULT)
                if (resultCode == Activity.RESULT_OK) {
                    try {
                        thumbnail = MediaStore.Images.Media.getBitmap(
                                getContentResolver(), imageUri);
                        imageurl = getRealPathFromURI(imageUri);
                        decodeFile(imageurl);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }

                }
        }
    }

Может кто-нибудь, пожалуйста, помогите мне ??
-Спасибо в Advace

1 Ответ

0 голосов
/ 03 апреля 2012

в элементе == o, пожалуйста, используйте приведенный ниже рабочий код :::

Calendar cal = Calendar.getInstance();
File file = new File(Environment.getExternalStorageDirectory(),(cal.getTimeInMillis()+".jpg"));
if(!file.exists()){
    try {
        file.createNewFile();
    } catch (IOException e) {
    // TODO Auto-generated catch block
        e.printStackTrace();
    }
}else{
    file.delete();
    try {
        file.createNewFile();
    } catch (IOException e) {
    // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
imageUri = Uri.fromFile(file);
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(i, PICTURE_RESULT);

, также вы можете изменить название изображения, как вам нравится

...