Android SurfaceView调整大小以适应屏幕16:9

时间:2014-09-30 16:31:58

标签: android resize surfaceview

你好!有没有一种很好的方法可以使用16:9的SurfaceView,然后将其调整到更大,直到它触及屏幕边缘? (所以SurfaceView的尺寸最大,仍然是16:9而不是在屏幕之外)

我听说它叫做letterbox,但是没有找到任何关于它的教程。

由于

1 个答案:

答案 0 :(得分:2)

有两种相关的尺寸,Surface的大小和View的大小。

Surface的大小取决于呈现给它的视频的大小。你无法改变这一点。 720p视频将大小设置为1280x720。

视图的大小由布局代码决定。这可以在你的应用程序中设置。

系统合成器(SurfaceFlinger)将缩放Surface的内容,使它们适合视图。为避免失真,您需要保持相同的宽高比。您可以使用自定义FrameLayout执行此操作。

有关示例,请参阅Grafika的视频播放器中AspectFrameLayout的使用方式,例如: this chunk of code