将视频切换到全屏模式android

时间:2014-01-15 21:13:24

标签: android fullscreen android-videoview

当用户按下全屏按钮时,我想以全屏模式显示视频 我在互联网上搜索过,但我找到的所有解决方案都没有解决问题

这是我当前的代码,它也不起作用:

        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>

包含videoview

你知道吗

4 个答案:

答案 0 :(得分:0)

设置布局参数后尝试requestLayout()

             ...
             params.leftMargin = 0;
             videoview.setLayoutParams(params);
             videoview.requestLayout();

答案 1 :(得分:0)

尝试更改视图的宽度:

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

不确定因为不能全部编码,但对我而言似乎根本不需要设置边距 你可能只是操纵视图的宽度和重力。

答案 2 :(得分:0)

您可能已经忘记了这行代码,以使其适合全屏。

getWindow()。setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

答案 3 :(得分:-1)

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