当前位置: 首页 > 知识库问答 >
问题:

Android定制人像照相机和图像方向

相弘方
2023-03-14

我正在写一个定制的肖像相机,我在图像方向上有一些问题。具体而言,我需要始终将相机设置为纵向,并使用清单配置:

Android:屏幕方向="肖像"

我在应用程序中设置:

customCamera.setDisplayOrientation(90);

这是有效的,因为当我旋转设备(90,180,270度)时,我可以看到(从相机预览)正确的图像。

我不在乎设备方向何时被锁定(禁用),但当它启用时,我似乎没有得到任何方向更改。我总是使用代码获得0度:

getWindowManager().getDefaultDisplay().getRotation();

从技术上讲,我需要写入拍摄的照片(使用exif数据)0、1、3、6或8值。因此,步骤是:1)在自定义肖像相机上设置正确的方向-完成!2) 预览正确的图片-完成!3) 如果设备方向处于启用状态,则获取当前旋转(0.90180270度)4)使用右方向exif标记写入拍摄的照片。

我正在使用三星Galaxy I进行开发。

问题是:当应用程序始终显示自定义肖像相机时,我如何获得设备方向,该相机永远不应该旋转,但设备方向已启用?

谢谢你,尼古拉斯

共有1个答案

厉令
2023-03-14

您可以使用OrientationEventListener

OrientationEventListener mOrientationListener = new OrientationEventListener(
            this, SensorManager.SENSOR_DELAY_NORMAL) {

        @Override
        public void onOrientationChanged(int orientation) {
        }

    };
 类似资料:
  • 所以我遇到了一个问题,前面在我提问的问题中提到过:将图像(ACTION_image_CAPTURE)上载到Firebase存储 我对这个问题进行了更多的搜索,并应用了Android Studio文档:https://developer.android.com/training/camera/photobasics.html#TaskPhotoView 所以,在您阅读代码之前,我基本上想说一下需要什

  • 当我捕获照片时,在某些设备中,它会以景观模式存储在某些设备中,它会存储肖像。我想让图像在肖像模式无论如何。为此,我尝试获取图像的数据,并相应地将其旋转到肖像模式。但在一些设备,如三星,VIVO的方向值得到“0”。我不知道该怎么处理那个值。如果我90,那么一些设备将解决此问题,而另一些设备将向上保存照片。 我从Xamarin那里得到这个主意。Andoid图像旋转。但不知怎的,我不能再继续下去了。会有

  • 有没有一种方法可以检测照片是否是在人像模式下拍摄的,然后解码位图,并将其按正确的方式向上翻转?

  • 问题内容: 我环顾四周,但似乎并没有解决这个非常恼人的问题的可靠答案。 我以纵向拍摄照片,然后单击“保存/放弃”,按钮也以正确的方向放置。问题是当我随后在横向上检索图像时(图像已逆时针旋转90度) 我不想强迫用户以特定方向使用相机。 有没有办法检测照片是否以人像模式拍摄,然后解码位图并将其向上翻转? 问题答案: 照片始终以相机内置在设备中的方向拍摄。为了使图像正确旋转,您必须读取存储在图片中的方向

  • 我正在构建一个类似于图片中所示的条形码扫描器的相机应用程序。我需要同时使用和API来支持android API>=19。 主要的想法是在整个屏幕上有相机预览,但只保存部分没有变暗(或拍摄的区域没有变暗)。我已经做了一些研究,发现通过和API只拍摄一部分照片是不可能的(但我不是100%确定)。所以我想我需要对我接收到的作为相机捕获的结果的字节数组(压缩成JPEG)进行一些操作。 我尝试以这种方式使用

  • 我一直在开发一个摄像头应用程序,所有的工作都是拍摄和保存照片。但我希望在拍摄照片时显示的Imageview能够保存在实际拍摄的照片中。可能吗? 现在,我一直试图让图像视图与我绘制相机预览的布局相同。 我想,也许如果它画在与相机相同的视图上,那么它也会看到图像和照片。 有没有人知道这是否可能,或者我必须采取另一种方法?如果是这样,链接到其他解决方案如何做到这一点将不胜感激:) 谢谢 编辑:我一直遵循