即使 VideoView 在不同的 xml 中(使用包含),全屏视频也是如此

Posted

技术标签:

【中文标题】即使 VideoView 在不同的 xml 中(使用包含),全屏视频也是如此【英文标题】:Fullscreen Video even when the VideoView is inside different xml's (using include) 【发布时间】:2016-05-24 19:30:01 【问题描述】:

我在一个 xml 中有一个 VideoView,它位于另一个 xml 中

<main.xml
    <include layout = "@layout/subLayou1"/> >
</main>

<subLayout1.xml
    <include layout = "@layout/subLayout2"/> >
</subLayout1>

<subLayout2.xml
    <VideoView
        android:id="@+id/videoView"
        android:layout_
        android:layout_
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:layout_alignParentTop="true"
        android:layout_centerInParent="true"
        android:background="@android:color/transparent" />

    <Button  for full screen />
</subLayout2>

但我希望 subLayout2 中的这个视频视图在单击全屏按钮时全屏显示..请帮帮我!!

【问题讨论】:

【参考方案1】:

在您的代码中,您为子布局放置了以下宽度高度

android:layout_
android:layout_

Sublayout1 只包含 sublayout2。您需要指定除 wrap_content 和 match_parent 之外的特定宽度和高度。

然后在这个活动的java文件中:

VideoView vv = findViewById(R.id.videoView);
DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics);
         android.widget.LinearLayout.LayoutParams params = (android.widget.LinearLayout.LayoutParams) videoView.getLayoutParams();


    fullscreenbtn.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View v) 
            params.width =  metrics.widthPixels;
            params.height = metrics.heightPixels;
            vv.setLayoutParams(params);
        
    );

将视频设置回原始:

    normalscreenbtn.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View v) 
            params.width =  (int) (original_width_dp*metrics.density);
            params.height = (int) (original_height_dp*metrics.density);
            vv.setLayoutParams(params);
        
    );

在全屏期间,您会找到屏幕尺寸的值,然后将其设置为视频视图。在最小化时,您必须将值设置回原始值。 metrics.density 将 dp 转换为像素。

Reference

【讨论】:

以上是关于即使 VideoView 在不同的 xml 中(使用包含),全屏视频也是如此的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击 Android 中的按钮使 VideoView 全屏显示?

Videoview 在框架布局内没有全屏显示

转角器 videoview kotlin

避免 VideoView 中的视频拉伸

二进制 XML 文件第 13 行:在扩展 VideoView 的类上膨胀类时出错

单击按钮时如何使 VideoView 全屏显示?