【问题标题】:Resizing the Camera Preview调整相机预览的大小
【发布时间】:2013-07-18 01:12:46
【问题描述】:

我已经实现了一个相机应用程序,它将在设备的整个屏幕上显示预览。但我的要求是在小屏幕上显示相机预览。我的设备分辨率为 800x480(WxH),即 Nexus one。我可以在整个屏幕上显示预览而不缩小预览。它来得很完美,但是当我尝试在小屏幕(我的整个移动屏幕的一部分)中显示预览时,预览会被拉伸并且看起来不太好。

有什么方法可以在小屏幕上正确显示预览。我认为我们需要缩小图像预览。但是当我尝试缩小图像预览时,android系统本身不允许设置缩放的预览大小。

谁能帮我在小屏幕上缩放图像预览。

【问题讨论】:

    标签: android


    【解决方案1】:

    在同一个问题苦苦挣扎了大约一周后,我终于能够让相机预览以编程方式自行调整大小! :-D

    preview 是我的SurfaceView 的名称,在这段代码中,我对其进行了设置,以便将其自身调整为它所在的RelativeLayout 宽度的一半。

    ViewGroup.LayoutParams params = preview.getLayoutParams();
    RelativeLayout myRelLayout = (RelativeLayout) findViewById(R.id.myRelLayout);
    params.width = (int) (myRelLayout.getWidth()/2);
    preview.setLayoutParams(params);
    

    现在供您使用,您需要查看预览的分辨率,然后根据该分辨率相应地缩小高度或宽度。

    【讨论】:

    • 另外,在相关说明中,我在拍摄第一张照片后遇到了巨大的问题,即我的相机预览失真。后来我发现,我需要将此行添加到我的清单文件中并修复它。 :-) ''
    【解决方案2】:

    一天,

    你试过改变吗

    <android.view.SurfaceView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/preview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_above="@id/ButtonGroup"
            />
    

    到这样的事情......

    <android.view.SurfaceView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/preview"
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:layout_above="@id/ButtonGroup"
            />
    

    如果这不是您要查找的内容,也许您可​​以发布您当前的代码以便我们查看? :-)

    【讨论】:

    • 感谢 Jared 的回复。我在此处发布之前已经尝试过上述建议。我们可以减小预览尺寸(表面视图尺寸)。但是这里的邮件问题在于预览屏幕。很难将相机预览正确(没有任何拉伸或收缩)设置为表面视图的大小。
    • uday,我在想一个可能的解决方案是,通过获取尺寸以编程方式确定拍摄的图片(或预览)的大小,然后以编程方式将预览的大小更改为有相同的纵横比吗?它会找出哪个尺寸太大(宽度或高度),然后根据需要将其缩小到合适的比例。这对你有用吗?如果是这样,请告诉我,我会看看我是否可以让它工作。 :-)
    猜你喜欢
    • 2022-12-18
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多