我有一个自定义的VideoView,我重写了onMeasure方法以使视频填充屏幕,同时保留视频文件的比例。
一切正常,但是带有一些视频,它的行为很奇怪:
我在onMeasure方法中放置了一个中断点,并在调试模式下运行。
[加载视频时,它会按预期填充屏幕,但是恰好在几秒钟后,当鼠标指针消失时,视频会重新调整为原始大小,不会填充屏幕,并且不会再次越过中断点(onMeasure方法为未调用)。
如果再次移动鼠标,视频将填满整个屏幕,直到指针消失。
我正在使用Android 4.4.4。
如果有人遇到相同的问题,我会发布我所做的事情:
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的父级。
我不明白为什么会有这种行为。