android VideoView 调整视频大小

android VideoView resizes video

我有一个自定义 VideoView,我重写了 onMeasure 方法以使视频充满屏幕,同时保持视频文件的比例。

一切正常,但对于某些视频,它有一个奇怪的行为:

我在 onMeasure 方法中放置了一个中断点,运行 在调试模式中。

当视频加载时,它按预期填满了屏幕,但几秒钟后,恰好在鼠标指针消失时,视频调整到其原始大小,没有填满屏幕,并且没有再次越过中断点 (未调用 onMeasure 方法)。

如果我再次移动鼠标,视频会填满屏幕直到指针消失。

我正在使用 Android 4.4.4.

如果有人遇到同样的问题,我会post我所做的:

    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
    FrameLayout fralayout = (FrameLayout) findViewById(R.id.framelayoutparent);
    FrameLayout.LayoutParams lpFraParams = (FrameLayout.LayoutParams) fralayout.getLayoutParams();
    lpFraParams.width = metrics.widthPixels-1;
    lpFraParams.height = metrics.heightPixels-1;
    fralayout.setLayoutParams(lpFraParams);

之前我没有将宽度和高度减去一个像素,减去一个像素就成功了。此 FrameLayout 是 VideoView.

的父级

我不明白它为什么会有这种行为。