【问题标题】:Cropping/Clipping camera preview to just show top half of image裁剪/剪辑相机预览以仅显示图像的上半部分
【发布时间】:2011-06-07 22:18:02
【问题描述】:

我正在开发一个在 SurfaceView 上显示相机预览的应用,但我只想显示预览的上半部分。

有没有办法裁剪/剪裁视图,或者我必须求助于用图像、其他视图或绘图之类的东西来遮挡下半部分?

问候 西蒙

【问题讨论】:

    标签: android view camera crop


    【解决方案1】:

    我目前正在使用这种方法进行裁剪(基本上是使用绝对布局的裁剪子功能来裁剪surfaceview子)

        <AbsoluteLayout android:clipChildren="true" android:layout_alignParentRight="true" android:layout_width="240dp" android:id="@+id/absoluteLayout1" android:layout_height="80dp">
        <SurfaceView android:id="@+id/swSurfaceView" android:layout_width="240dp" android:layout_height="160dp" android:visibility="visible"></SurfaceView>
    </AbsoluteLayout>
    

    【讨论】:

    • 这仅适用于某些设备...在其他设备上不会产生预期的效果。
    【解决方案2】:

    用另一个视图覆盖SurfaceView 是最简单的方法......但是,如果你问我,它会很丑。

    为什么不手动设置SurfaceView 高度?让它占据 50% 的屏幕空间,它会做你想做的事。您不提供代码,所以我们必须做一些猜测:假设您有一个LinearLayout,然后在其中放置两个视图:您的表面视图和另一种视图。然后,您将它们的高度设置为 0dip,将它们的重量设置为 1...应该这样做。

    【讨论】:

    • AFAICT 那种方法只是“挤压”预览 :( - 我希望只显示预览的上半部分,最好以“漂亮”的方式 :)
    • 我刚刚尝试了您的建议,但它确实如我所料 - 它垂直挤压相机预览,因此您最终会看到整个相机图像的扭曲视图,而不是上半部分图片:(
    • 您可以将您的代码粘贴到您的自定义SurfaceView 中吗?
    • 不确定你的意思,但我已经发布了我最终使用的 xml 代码:)
    猜你喜欢
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多