我有一个应用程序,其中包含循环播放的视频,该视频比屏幕的长度长,但是无法向下滚动并查看视频的底部部分(位于屏幕底端之外)。
如何让视频上下滚动?
activity_main.xml:
< LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android"
android: orientation = "vertical"
android: layout_width = "match_parent"
android: layout_height = "match_parent" >
<
VideoView
android: layout_width = "wrap_content"
android: layout_height = "2950px"
android: id = "@+id/dig_lic" /
>
<
/LinearLayout>
MainActivity.kt:
class MainActivity: ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle ? ) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val videoView = findViewById < VideoView > (R.id.dig_lic)
val packageName = "android.resource://" + getPackageName() + "/" + R.raw.dig_lic_video
val uri = Uri.parse(packageName)
videoView.setOnPreparedListener {
it.isLooping = true
}
videoView.setVideoURI(uri)
videoView.start()
}
}
您面临此问题的原因是因为您在布局
VideoView
中为2950px
定义了固定高度。这会将视频限制为该精确大小,并禁止播放器滚动,即使视频本身仍在继续。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<VideoView
android:id="@+id/dig_lic"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
如果这不能解决您的问题,请将 VideoView 放入 ScrollView 控件中。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<VideoView
android:id="@+id/dig_lic"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</ScrollView>
</LinearLayout>
或者在视频格式允许的情况下使用 WebView。