菜鸡豪在用原生VideoView播放视频的时候发现视频总是填不满,我看了一下源码,看到这一段
else if (heightSpecMode == MeasureSpec.EXACTLY) {
// only the height is fixed, adjust the width to match aspect ratio if possible
height = heightSpecSize;
width = height * mVideoWidth / mVideoHeight;
if (widthSpecMode == MeasureSpec.AT_MOST && width > widthSpecSize) {
// couldn't match aspect ratio within the constraints
width = widthSpecSize;
}
我发现在这种情况下我的width一直都是处于一个比例关系,所以我的width一直填不满,因为我不可能改动我的VideoView布局去满足OnMeasure的判断条件,所以我只有重写VideoView里面的OnMeasure方法,抛弃判断让视频无论如何都要适配VideoVeiw
所以就是写一个自定义VideoView,重写OnMeasure方法(简单粗暴)
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(widthMeasureSpec,heightMeasureSpec);
}