即使 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 全屏显示?