将videoview切换到全屏模式android
我想在用户按下全屏按钮时以全屏模式显示视频视图 我在互联网上搜索过,但我找到的所有解决方案都不能解决这个问题 这是我目前的代码,但它不太管用:将videoview切换到全屏模式android,android,fullscreen,android-videoview,Android,Fullscreen,Android Videoview,我想在用户按下全屏按钮时以全屏模式显示视频视图 我在互联网上搜索过,但我找到的所有解决方案都不能解决这个问题 这是我目前的代码,但它不太管用: public void setAnchorView(final View view) { super.setAnchorView(view); Button fullScreen = new Button(VideoDetails.this); fullScreen.setText("Fu
public void setAnchorView(final View view) {
super.setAnchorView(view);
Button fullScreen = new Button(VideoDetails.this);
fullScreen.setText("FullScreen");
Log.e("media controller","Set anchorView");
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(view.getWidth(), 0, 5, 20);
params.gravity = Gravity.RIGHT;
addView(fullScreen, params);
fullScreen.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics);
android.widget.FrameLayout.LayoutParams params = (android.widget.FrameLayout.LayoutParams) videoview.getLayoutParams();
params.leftMargin = 0;
videoview.setLayoutParams(params);
}
});
}
这是xml布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#818181" >
<RelativeLayout
android:id="@+id/video_details_header"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:background="#000000" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="12dp"
android:clickable="true"
android:onClick="returnback"
android:text="Back"
android:textColor="#ffffff" />
<TextView
android:id="@+id/video_details_text_header_center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textColor="#ffffff" />
</RelativeLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/video_details_header"
android:layout_centerInParent="true" >
<RelativeLayout
android:id="@+id/layout_page"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/video_details_video"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" >
<ImageView
android:id="@+id/video_details_thumbnail"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:onClick="showvideo"
android:padding="11dp"
android:visibility="visible" />
<VideoView
android:id="@+id/video_details_videoView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:padding="11dp"
android:visibility="gone" />
</FrameLayout>
其中包含视频视图
你有什么想法吗在设置布局参数后尝试调用
...
params.leftMargin = 0;
videoview.setLayoutParams(params);
videoview.requestLayout();
也尝试更改视图的宽度:
WindowManager wm = (WindowManager)videoview.getContext().getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
int displayWidth = display.getWidth();
params.leftMargin = 0;
params.width = displayWidth;
videoview.setLayoutParams(params);
videoview.requestLayout();
不确定,因为不能全部编码,但对我来说,似乎根本不需要设置边距
您可以只使用视图的宽度和重力进行操作。您可能忘记了这一行代码,以使其适合全屏显示
getWindow.setFlagsWindowManager.LayoutParams.FLAG_全屏,WindowManager.LayoutParams.FLAG_全屏 不幸的是,在某些情况下不会发生任何事情。在您将可见性更改为View.Goe之前,它不应该工作。在屏幕上发生的所有其他控件都消失了。id@+id/video\u details\u video的框架布局高度也应更改。在我看来,最好用自定义布局实现自己的类,从ViewGroup访问。您找到了全屏播放视频的解决方案吗
DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics);
android.widget.LinearLayout.LayoutParams params = (android.widget.LinearLayout.LayoutParams) videoView.getLayoutParams();
params.width = metrics.widthPixels;
params.height = metrics.heightPixels;
params.leftMargin = 0;
videoView.setLayoutParams(params);