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

GetSupportedPreviewSize返回反向宽度和高度

刘棋
2023-03-14

我正在使用DroidX开发一个使用相机预览图像的应用程序。我正在使用的代码在网络上的许多地方都可以找到,但我注意到常用方法“getBestPreviewSize(宽、高、camera.parameters)”返回的大小非常小,以至于标准decdeYUV420SP方法因空指针异常而失败。

一些调试显示my DroidX支持的预览大小为:

  • 144h x 176w
  • 240h x 320w
  • 288h x 352w
  • 480h x 640w
  • 480h x 720w
  • 448h x 800w
  • 720h x 1280w

请注意,高度和宽度的值给出了景观透视图。这不会随着相机方向而改变。传递给getBestSupport dPreviewSize的表面宽度和高度为480w x 778h。

当我经过摄像机时。参数设置为getBestSupportedPreviewSizes()它返回288 x 352的大小。这是呼叫代码——如果格式不正确,我很抱歉,但下面是:

      if (!cameraConfigured) {
        Camera.Parameters parameters=camera.getParameters();
        Camera.Size size=getBestPreviewSize(pwidth, pheight, parameters);
        if (size!=null) {
          parameters.setPreviewSize(size.width, size.height);
          camera.setParameters(parameters);
          cameraConfigured=true;
        }
    }

pwidthpheight来自surfaceChanged回调的宽度和高度参数。我试过拍照。设置显示方向(90);在onResume()中。我还将方向(“肖像”)放在清单中——这些尝试的四种组合似乎都没有改变这种行为。

我的想法是简单地把它们颠倒过来,但在很多层面上都感觉不对。由于这段免费提供的代码似乎已经在许多其他例子中证明了自己,所以我显然是错的。有人能对这种行为提供一些见解吗?

提前感谢。

共有1个答案

平嘉熙
2023-03-14

考虑相机的正确方式是在横向模式下,这意味着当你在纵向模式下考虑相机时,宽度和高度会感觉“翻转”。

getBestPreviewSize(w,h,p)函数只是getSupportedPreviewSizes()函数的包装。参数,因此传入的宽度和高度不会更改bestPreviewSize函数的结果。

 类似资料:
  • 正如我在标题中所说,这对我来说毫无意义。应该返回宽度的方法返回1920,应该返回高度的方法返回1080。我做错什么了吗? 我的相机活动被锁定在竖屏中。我的手机是三星Note 4。由于我的手机是竖屏并锁定在那个方向,所以我的高度应该是1920,宽度应该是1080,但是当我没有将相机活动锁定在竖屏中时,它仍然返回错误的值,但是当它转到横向模式时,高度是1080,宽度是1920。 我的代码:

  • 主要内容:1. width,2. height,3. max-width 和 max-height,4. min-width 和 min-heightCSS 尺寸属性指的就是元素的宽度和高度属性,虽然说非常简单,但却是必须掌握的技能。CSS 中提供了 width、height、max-width、min-width、max-height 和 min-height 等几个属性来设置元素的宽度和高度,这些元素使用起来非常简单,下面我们就来简单介绍一下。 1. width 通过 width 属性可以设

  • 文件:main。派克 文件:run_me.py 我试图从左下角到右上角画一条线。 我认为这可能是一个尺度问题(变量self.available\u width,self.available\u height)。 我做错了什么?

  • 前面我们提到HTML元素的尺寸(高或宽)是动态的,会随着内容调整。不过我们也可以为元素设定固定的尺寸大小。 blockquote{ width: 600px;} 上面的 blockquote 将始终保持600px的宽度,如果浏览器窗口小于600px,将显示一个水平滚动条。 因为我们只设置了宽度,那么这个 blockquote 的高度仍然是动态的,会自动调整来适应内容。 CSS 溢出(overflo

  • 问题内容: 因此,我的游戏从垂直方向开始,然后最终变为水平方向。我知道屏幕的宽度是屏幕的宽度,并且在垂直方向上与高度相同。切换为水平方向时,高度是否变为宽度,宽度是否变为高度?还是保持不变? 问题答案: 是的,屏幕的宽度和高度取决于设备的方向。您可以获取显示的大小,用该显示大小可以代替不推荐使用的方法和。从文档中:根据显示器的当前旋转为您调整此值。

  • 我的游戏使用什么高度和宽度有关系吗?在我的游戏中,我有几个多边形,它们都与我画过的图像相连,但当我有800x480的宽度和高度时,我必须把图像画得很小,这导致它们变得模糊。而且,我真的不明白这在不同尺寸的手机屏幕上是如何表现的…我所画的图像是被拉长了,还是它们仍然很小,即使是在大平板上?所以我的问题是,在一个libgdx游戏中,最优的宽度和高度是多少? 这是我代码的一部分,也许可以帮助您理解我的意