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

Camera2 Api,Size对象,getHeight方法返回宽度,getWidth返回高度

狄睿
2023-03-14

正如我在标题中所说,这对我来说毫无意义。应该返回宽度的方法返回1920,应该返回高度的方法返回1080。我做错什么了吗?

我的相机活动被锁定在竖屏中。我的手机是三星Note 4。由于我的手机是竖屏并锁定在那个方向,所以我的高度应该是1920,宽度应该是1080,但是当我没有将相机活动锁定在竖屏中时,它仍然返回错误的值,但是当它转到横向模式时,高度是1080,宽度是1920。

我的代码:

mPreviewSize = 
chooseOptimalSize(map.getOutputSizes(SurfaceTexture.class), rotatedWidth, 
rotatedHeight);

private static Size chooseOptimalSize(Size[] choices, int width, int 
height) {
    List<Size> bigEnough = new ArrayList<Size>();
    for(Size option : choices) {
        Log.d("detectivepikachu","option: h: "+option.getHeight()+" w: 
"+option.getWidth());

        if(option.getHeight() == option.getWidth() * height / width &&
                option.getWidth() >= width && option.getHeight() >= 
height) {
            bigEnough.add(option);
        }
    }
    if(bigEnough.size() > 0) {
        return Collections.min(bigEnough, new CompareSizeByArea());
    } else {
        return choices[0];
    }

}

共有1个答案

澹台正业
2023-03-14

您可以旋转纹理,但即使在竖屏中,相机硬件仍然会产生相同的图像。有关更多详细信息,请参阅为什么相机2支持预览尺寸宽度总是大于高度?

如果您使用MediaRecorder制作视频,或使用ImageReader动态捕捉预览图像,它们也会以相机硬件指定的方向到达。为了适应设备的方向,必须明确地旋转它们。

 类似资料:
  • 问题内容: 我正在动态创建我的android项目中的所有元素。我正在尝试获取按钮的宽度和高度,以便可以旋转该按钮。我只是想学习如何使用android语言。但是,它返回0。 我做了一些研究,发现除了方法之外,还需要其他地方。如果有人可以给我一个例子,那就太好了。 这是我当前的代码: 任何帮助表示赞赏。 问题答案: 你打得太早了。UI尚未调整大小并在屏幕上布置。 无论如何,我怀疑你是否想做自己正在做的

  • 我正在使用DroidX开发一个使用相机预览图像的应用程序。我正在使用的代码在网络上的许多地方都可以找到,但我注意到常用方法“getBestPreviewSize(宽、高、camera.parameters)”返回的大小非常小,以至于标准decdeYUV420SP方法因空指针异常而失败。 一些调试显示my DroidX支持的预览大小为: 144h x 176w 240h x 320w 288h x

  • 问题内容: 我正在构建一个UI,并且都是在XML中静态定义的。它的所有位置都具有重量,虽然看起来正确,但我想看到所有东西实际上都具有正确的高度。问题是,无论我在哪里为格式布局调用.getHeight(),都得到0。我在onCreate()和onStart()中都尝试过。一样。也会发生所有UI对象。任何想法? XML: 问题答案: 简而言之,视图尚未在onCreate(),onStart()或onR

  • 问题内容: 我有一个LinearLayout,此LinearLayout将容纳动态放置的视图。我需要找出LinearLayout子级的宽度,但是必须在onCreate方法中完成。通过研究,我发现您不能通过此方法使用getWidth。因此,我改为使用onWindowFocusChanged,它适用于父级LinearLayout(向我返回实际大小),但不适用于其子级。 我注意到的另一件事是,当屏幕逐渐

  • 这是MyFragmentPagerAdapter类,它扩展了FragmentPagerAdapter。返回我的片段时发现错误 我的国家详情如下。它扩展了Fragment,我将2个文本视图填充到一个视图寻呼机中,如下所示。 堆栈跟踪如下 03-03 05:15:31.093: E/AndreidRuntime(910): FATAL EXCEPTION: main 03-03 05:15:31.09

  • 问题内容: 我有一类这样的方法: 我如何在另一个类中调用此方法? 问题答案: 1. 如果要从中调用该方法的类位于同一包中,则创建该类的实例并调用该方法。 2. 使用 3. 最好有个赞等等。 例如: