Android 在ImageCapture.Builder上设置目标分辨率在某些华为设备上不起作用
假设我们只想拍摄目标分辨率为Android 在ImageCapture.Builder上设置目标分辨率在某些华为设备上不起作用,android,android-jetpack,android-camerax,Android,Android Jetpack,Android Camerax,假设我们只想拍摄目标分辨率为1200x1600像素的纵向(非横向)照片 根据ImageCapture.Builder中的setTargetResolution方法文档: 分辨率应该在用例的目标旋转时表示。 例如,在自然模式下具有纵向自然方向的设备 请求纵向图像的目标旋转可指定480x640,以及 同一台设备,旋转90度,瞄准地面 方向可以指定640x480 我们应该像这样构建ImageCapture用例: ImageCapture.Builder() .setTargetResolutio
1200x1600
像素的纵向(非横向)照片
根据ImageCapture.Builder
中的setTargetResolution
方法文档:
分辨率应该在用例的目标旋转时表示。
例如,在自然模式下具有纵向自然方向的设备
请求纵向图像的目标旋转可指定480x640,以及
同一台设备,旋转90度,瞄准地面
方向可以指定640x480
我们应该像这样构建ImageCapture
用例:
ImageCapture.Builder()
.setTargetResolution(Size(1200, 1600))
.build()
让我们假设我们的手机始终处于纵向自然方向
除一些华为手机(如华为Mate 20 Lite)外,其他一切正常。图像被裁剪,因为我们会反转尺寸(即size(16001200)
)
是否有任何“安全”的解决方法,我们可以用来解决这个问题?我不想把华为的设备列入黑名单
CameraX版本1.0.0-beta03
编辑
1.0.0-beta06
仍然不起作用。要信任华为,还是不信任华为,这就是问题所在。您是否尝试将setTargetRotation与setTargetResolution一起设置?我设置了,但不幸的是,它不起作用。@Nominalista代替阻止列表,您可以执行类似于反向设备列表的操作,对于那个些你们提供的分辨率参数已经反转了,所以那个些设备将再次反转,并得到正确的结果。我说什么?它可以工作,但我不能访问信号黑名单中的所有设备。当我注意到真正的用户遇到这个问题时,我假设我必须按顺序展开设备列表。