新手,看到视频播放的时候,动手弄了个最简单的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<VideoView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/vv_show"/>
</LinearLayout>
在VideoVidw里面设置layout_width,layout_height,不管设置成match_parent还是wrap_content的,这个VideoView还是撑满了整个屏幕(程序就是一个简单的布局,除了自动代码以外,没有加一点代码),发现这里wrap_content就一点用都没有,请教前辈这个是什么问题
For size issues, please refer directly to the
onMeasure()
method ofVideoView
VideoView
的onMeasure()
方法
The size ofVideoView
的大小跟mVideoWidth
和mVideoHeight
有关, 看变量名字就知道是播放的媒体的实际尺寸, 你设置播放的媒体么? 大致看了下onMeasure()
VideoView
is related tomVideoWidth
andmVideoHeight
. You can tell by looking at the variable name that it is the actual size of the media being played. Have you set the media to be played? ? After a brief look atonMeasure()
, the logic inside is not very complicated. You can take a look at it yourself and you will probably know what the problem is🎜Generally speaking, the player has to define its own size. Because it will be scaled, the height definition method of wrapping the content cannot be used.
As mentioned on the first floor, to understand the layout rendering process of VideoView, you can take a look at the source code of VideoView
The source code contains
// no size yet, just adopt the given spec sizes
If you don’t set the height, it will give you the default space size, which is the size of the parent container. It's full screen.