我已经实现了一个相机应用程序,它将在设备的整个屏幕上显示预览。但我的要求是在小屏幕上显示相机预览。我的设备分辨率是800x480(WxH),即Nexus one。我可以在整个屏幕上显示预览,而无需缩小预览。它完美无缺,但是当我尝试在小屏幕(我的整个手机屏幕的一部分)中显示预览时,预览会变得紧张而且看起来不太好。
有没有办法在小屏幕上正确显示预览。我认为我们需要缩小图像预览。但是当我尝试缩小图像预览时,android系统本身不允许设置缩放的预览大小。
请问任何人如何在小屏幕上缩放图像预览。
答案 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"
/>
如果这不是你想要的,也许你可以发布你当前的代码,以便我们可以看看它? : - )