VideoView内容调整大小

时间:2012-08-30 15:14:07

标签: android video android-videoview

我有一个VideoView设置为填充父级并且可以正常使用全尺寸视频,我发现很难找到一个解决方案,当视频大小为4:3或更小时,它保持在我的视图左侧,而相同的应用程序ios全屏显示。 我们可以调整视频大小并以与视频视图相同的大小显示它吗?还是可以调整VideoView的内容大小? 我试过了

view.measure(View.MeasureSpec.EXACTLY, View.MeasureSpec.EXACTLY);

但没有结果

1 个答案:

答案 0 :(得分:5)

制作一个这样的自定义视频类:

public class CustomVideoView extends VideoView {

    protected int _overrideWidth = 480;

    protected int _overrideHeight = 360;

    public CustomVideoView(Context context) {
        super(context);
    }

    public CustomVideoView(Context context, AttributeSet set) {
        super(context, set);
    }

    public void resizeVideo(int width, int height) {
        _overrideHeight = height;
        _overrideWidth = width;
        // not sure whether it is useful or not but safe to do so
        getHolder().setFixedSize(width, height);
        //getHolder().setSizeFromLayout();
        requestLayout();
        invalidate(); // very important, so that onMeasure will be triggered

    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
    {
        setMeasuredDimension(_overrideWidth, _overrideHeight);
    }

}

在课堂上使用resizeVideo方法,屏幕宽度和高度作为参数。

请注意,所有这些都取决于电影比例和屏幕比例。如果它们相同,则视频会全屏显示,但当它们不同时,视频会根据宽度/高度进行调整。