为什么我的Android应用程序中的“图像选择器”会自动将肖像图像旋转为横向图像?

同义

我在Android应用中使用此代码来启动相机/图库以获取图像,并将其显示在ImageView中。

当用户选择横向图像时,一切正常,但是当用户选择肖像图像时,图像旋转显示90度。我不明白为什么。我正在使用Android 4.3在Galaxy S3上测试我的应用

我注意到问题仅在通过手机拍照时才出现。也许这是S3的问题?

这是我的代码:

    private void openImageIntent() {
        // Camera.
        System.gc();

        final List<Intent> cameraIntents = new ArrayList<Intent>();
        final Intent captureIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        final PackageManager packageManager = getPackageManager();
        final List<ResolveInfo> listCam = packageManager.queryIntentActivities(captureIntent, 0);
        for(ResolveInfo res : listCam) {
            final String packageName = res.activityInfo.packageName;
            final Intent intent = new Intent(captureIntent);
            intent.setComponent(new ComponentName(res.activityInfo.packageName, res.activityInfo.name));
            intent.setPackage(packageName);
            cameraIntents.add(intent);
        }

        // Filesystem.
        final Intent galleryIntent = new Intent();
        galleryIntent.setType("image/*");
        galleryIntent.setAction(Intent.ACTION_GET_CONTENT);

        // Chooser of filesystem options.
        Intent chooserIntent = Intent.createChooser(galleryIntent, "Scegli dove prelevare l'immagine");

        // Add the camera options.
        chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, cameraIntents.toArray(new Parcelable[]{}));
        //Log.i("sto lanciando il chooser","vado eh");
        startActivityForResult(chooserIntent, 4982);
    }


    private String selectedImagePath;
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
        super.onActivityResult(requestCode, resultCode, data);



        if (resultCode == RESULT_OK) {
            if (requestCode == 4982) {


                Uri selectedImageUri = data.getData();
                selectedImagePath = getPath(selectedImageUri);
                //Log.i("immagine",selectedImagePath);

                myImageView.setImageBitmap(decodeSampledBitmapFromFile(new File(selectedImagePath)));

            }
        }

    } 
    public String getPath(Uri uri) {
        String[] projection = { MediaStore.Images.Media.DATA };
        Cursor cursor = managedQuery(uri, projection, null, null, null);
        int column_index = cursor
                .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    }


    public static Bitmap decodeSampledBitmapFromFile(File file) {

        // First decode with inJustDecodeBounds=true to check dimensions
         BitmapFactory.Options o = new BitmapFactory.Options();
            o.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(file.getAbsolutePath(), o);

        //The new size we want to scale to
        final int REQUIRED_SIZE=430;

        //Find the correct scale value. It should be the power of 2.
        int scale=1;
        while(o.outWidth/scale/2>=REQUIRED_SIZE && o.outHeight/scale/2>=REQUIRED_SIZE)
            scale*=2;

        //Decode with inSampleSize
        BitmapFactory.Options o2 = new BitmapFactory.Options();
        o2.inSampleSize=scale;

        return BitmapFactory.decodeFile(file.getAbsolutePath(), o2);
       }
常用软件

许多Android设备(如果在拍照时将设备保持为人像),请勿将图像旋转为人像。相反,他们将图像存储在横向中,并在图像中放置一个EXIF标头,以告诉任何图像查看器“嘿!请旋转270度!”。据我所知,三星设备经常会遇到此问题,这很可能就是您所遇到的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的Android应用程序中的“图像选择器”会自动将肖像图像旋转为横向图像?

来自分类Dev

为什么在选择图像应用程序后单击“选择图像”按钮会崩溃?

来自分类Dev

横向图像选择器。

来自分类Dev

画廊中的图像会自动旋转-Android

来自分类Dev

画廊中的图像会自动旋转-Android

来自分类Dev

为什么我运行应用程序时图像会拉伸?

来自分类Dev

在ListView中添加图像图标会使我的应用程序崩溃

来自分类Dev

如何在引导图像网格中处理肖像图像

来自分类Dev

为什么当我将图像设置为 ImageView 并在 android 7.1.1 上运行它时应用程序崩溃

来自分类Dev

将图像从图像选择器保存到Firebase中

来自分类Dev

为什么图像不显示在应用程序中

来自分类Dev

我应该将图像存储在我的网络应用程序中的什么位置?

来自分类Dev

为什么相对图像路径在我的React应用程序中不起作用?

来自分类Dev

为什么我的Vue.js Nuxt应用程序中的图像请求未定义

来自分类Dev

为什么图像没有显示在我的Apple Watch应用程序中?

来自分类Dev

将PNG附加到MFMailComposer时,图像会自动旋转以横向移动

来自分类Dev

在“设置动态图像选择器”上冻结应用程序

来自分类Dev

从Android应用程序将图像保存在Django中

来自分类Dev

使用swift通过图像选择器选择后如何镜像图像?

来自分类Dev

使用swift通过图像选择器选择后如何镜像图像?

来自分类Dev

为什么添加选择器标签会导致Web应用程序冻结?

来自分类Dev

Android应用程序中的图像

来自分类Dev

从我的应用程序捕获的图像仅在三星设备中旋转

来自分类Dev

为什么在我的 Xamarin.Forms 应用程序的 iOS 版本的某些屏幕中禁用条目和选择器?

来自分类Dev

为什么在android中单击我的应用程序的后退按钮后,我以前的活动会自动刷新?

来自分类Dev

Android中图库中的图像选择器

来自分类Dev

为什么Python会自动从图像数组中删除负值?

来自分类Dev

为什么我的图像不旋转?

来自分类Dev

为什么CGContextDrawImage旋转我的图像

Related 相关文章

  1. 1

    为什么我的Android应用程序中的“图像选择器”会自动将肖像图像旋转为横向图像?

  2. 2

    为什么在选择图像应用程序后单击“选择图像”按钮会崩溃?

  3. 3

    横向图像选择器。

  4. 4

    画廊中的图像会自动旋转-Android

  5. 5

    画廊中的图像会自动旋转-Android

  6. 6

    为什么我运行应用程序时图像会拉伸?

  7. 7

    在ListView中添加图像图标会使我的应用程序崩溃

  8. 8

    如何在引导图像网格中处理肖像图像

  9. 9

    为什么当我将图像设置为 ImageView 并在 android 7.1.1 上运行它时应用程序崩溃

  10. 10

    将图像从图像选择器保存到Firebase中

  11. 11

    为什么图像不显示在应用程序中

  12. 12

    我应该将图像存储在我的网络应用程序中的什么位置?

  13. 13

    为什么相对图像路径在我的React应用程序中不起作用?

  14. 14

    为什么我的Vue.js Nuxt应用程序中的图像请求未定义

  15. 15

    为什么图像没有显示在我的Apple Watch应用程序中?

  16. 16

    将PNG附加到MFMailComposer时,图像会自动旋转以横向移动

  17. 17

    在“设置动态图像选择器”上冻结应用程序

  18. 18

    从Android应用程序将图像保存在Django中

  19. 19

    使用swift通过图像选择器选择后如何镜像图像?

  20. 20

    使用swift通过图像选择器选择后如何镜像图像?

  21. 21

    为什么添加选择器标签会导致Web应用程序冻结?

  22. 22

    Android应用程序中的图像

  23. 23

    从我的应用程序捕获的图像仅在三星设备中旋转

  24. 24

    为什么在我的 Xamarin.Forms 应用程序的 iOS 版本的某些屏幕中禁用条目和选择器?

  25. 25

    为什么在android中单击我的应用程序的后退按钮后,我以前的活动会自动刷新?

  26. 26

    Android中图库中的图像选择器

  27. 27

    为什么Python会自动从图像数组中删除负值?

  28. 28

    为什么我的图像不旋转?

  29. 29

    为什么CGContextDrawImage旋转我的图像

热门标签

归档