调整相机预览的大小

时间:2011-03-31 11:42:13

标签: android

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

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

请问任何人如何在小屏幕上缩放图像预览。

2 个答案:

答案 0 :(得分:2)

在对这个问题进行了大约一周的努力之后,我终于可以通过编程方式让相机预览自行调整大小! :-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);

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

答案 1 :(得分:0)

乌代,

您是否尝试过更改

<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"
        />

如果这不是你想要的,也许你可以发布你当前的代码,以便我们可以看看它? : - )