【问题标题】:Android VideoView resizing won't resize videoAndroid VideoView 调整大小不会调整视频大小
【发布时间】:2017-03-26 22:38:08
【问题描述】:

我有一个VideoView,它可以根据键盘事件调整大小。我观察到即使 VideoView 的布局发生了变化(变化清晰可见),视频(由 VideoView 播放)也不会调整大小。是否需要拨打任何电话才能将视频大小调整为新布局?

我已经尝试过“invalidate()”和“requestLayout()”,但它们不起作用。

【问题讨论】:

  • 布局何时改变?播放时更改或先更改布局,然后播放视频
  • 播放时改变

标签: android android-videoview layoutparams


【解决方案1】:

在更改其所有者布局后,我设法通过这样做重新实现了我的 VideoView 大小:

mVideoView.getHolder().setSizeFromLayout();

【讨论】:

  • 这对我有用。首先,我在包含 VideoView 的最父 ViewGroup 上调用了 invalidate(),然后在 VideoView 上调用了 getHolder().setSizeFromLayout()
【解决方案2】:

您需要创建一个自定义 VideoView,因为它需要调用这 2 个方法:

onMeasure()onConfigurationChanged()

这个答案解释得很详细,请查看以下内容:

Android VideoView orientation change with buffered video

【讨论】:

    【解决方案3】:

    使用 FrameLayout 作为 videoView 的父级

     <?xml version="1.0" encoding="utf-8"?>
     <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent">
    
       <VideoView
           android:id="@+id/myVideo"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:layout_gravity="center" />
    
    </FrameLayout>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多