将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);