VideoView Full screen in android application

i have a videoview in my application. the code is like this.

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent" android:orientation="vertical"
    android:background="@drawable/opsbuds">
    <TextView android:text="TextView" android:id="@+id/adtxt1"
        android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
    <VideoView android:layout_width="300dip"
        android:layout_height="250dip" android:id="@+id/videoView11" android:layout_marginLeft="30dip"></VideoView>

    <LinearLayout android:layout_width="match_parent"
        android:id="@+id/llv11" android:layout_height="wrap_content"
        android:orientation="vertical">
    </LinearLayout>

    <Button android:text=" Continue " android:id="@+id/button1211"
        android:layout_width="wrap_content" android:textStyle="bold"
        android:layout_marginTop="10dp" android:layout_height="wrap_content"
        android:textSize="20dp" android:layout_marginLeft="5dp"
        android:textColor="#800080" android:background="@drawable/button"></Button>
</LinearLayout>

  • How to disable power button?
  • Widget shows “App Isn't Installed” Toast in ICS
  • Fetching a SQLite SUM in Java on Android
  • how to set shadow to a View in android?
  • Get Cursor Position in Android in Edit Text?
  • How to release memory of bitmap using imageloader in android?
  • the video view width and hieght is mentioned in xml file. What i want is , once i press a button the videoview should come on full screen and once i press back button the videoview should go back to its mentioned size. please help?

    Related posts:

    Disabling the context menu on long taps on Android
    Mqtt sample app is not keeping connection on android 5.1.1
    Android real escape string in sqlite
    java.lang.VerifyError: Verifier rejected class on Lollipop when using release APK
    Firebase android : make username unique
    Is there an AppCompat equivalent of Widget.Material.Spinner.Underlined?
  • Disable swiping between tabs
  • More than one BroadcastReceiver for the same Intent with contradictory doc and practice
  • 3D object rendering in openCV using metaio in Android
  • How does Log.wtf() differ from Log.e()?
  • Android RecyclerView below Toolbar
  • Soundpool plays only first 5 secs of file. Why?
  • 9 Solutions collect form web for “VideoView Full screen in android application”

    set fullscreen this way,

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

    and back to orignal size, this way.

                 DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics);
                 android.widget.LinearLayout.LayoutParams params = (android.widget.LinearLayout.LayoutParams) videoView.getLayoutParams();
                 params.width =  (int) (300*metrics.density);
                 params.height = (int) (250*metrics.density);
                 params.leftMargin = 30;
                 videoView.setLayoutParams(params);
    

    I had to make my VideoView sit in a RelativeLayout in order to make the chosen answer work.

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    
        <VideoView android:id="@+id/videoViewRelative"
             android:layout_alignParentTop="true"
             android:layout_alignParentBottom="true"
             android:layout_alignParentLeft="true"
             android:layout_alignParentRight="true"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent">
        </VideoView>
         </RelativeLayout>
    

    As given here: Android – How to stretch video to fill VideoView area Toggling between screen sizes would be as simple as changing the layout parameters as given in the chosen answer.

    On Button click start the native video player which will open in full screen:

    Intent intent = new Intent(Intent.ACTION_VIEW );
    intent.setDataAndType(Uri.parse(path), "video/*");
    startActivity(intent);
    

    First Method

    when you want to open a video in full screen for that Activity you have to set the theme attribute in the Manifest. set this value that is

    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    

    change theme programmatically here

    Second Method

    create another fullscreen.xml like below and setContentView(R.layout.fullscreen) on click of the button

    <?xml version="1.0" encoding="utf-8"?>
     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
               android:layout_width="fill_parent"
               android:layout_height="fill_parent" >
       <VideoView android:id="@+id/myvideoview"
                 android:layout_width="fill_parent"
                 android:layout_alignParentRight="true"
                 android:layout_alignParentLeft="true"
                 android:layout_alignParentTop="true"
                 android:layout_alignParentBottom="true"
                 android:layout_height="fill_parent">
        </VideoView>
     </RelativeLayout>
    

    I have done this way:

    Check these reference screen shots.

    enter image description here

    Add class FullScreenVideoView.java:

    import android.content.Context;
    import android.util.AttributeSet;
    import android.widget.VideoView;
    
    public class FullScreenVideoView extends VideoView {
        public FullScreenVideoView(Context context) {
            super(context);
        }
    
        public FullScreenVideoView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        public FullScreenVideoView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }
    
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
            setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
        }
    }
    

    How to bind with xml:

    <FrameLayout
       android:id="@+id/secondMedia"
       android:layout_width="match_parent"
       android:layout_height="match_parent">
    
         <com.my.package.customview.FullScreenVideoView
               android:layout_width="match_parent"
               android:layout_height="match_parent" 
               android:id="@+id/fullScreenVideoView"/>
    
    </FrameLayout>
    

    Hope this will help you.

    you can achieve it by creating two separate activity.
    Suppose first activity is halfScreen activity. In this activity your video view having small size. On button click of full screen video start another activity ‘fullScreen activity’. In second activity the video view should be match parent to the parent layout.you can also start video in full screen from where it is paused in half screen.In my code i have implemented that.Also you can resume the video in half screen on the back press of fullscreen activity.
    This is work for me.Hope it will work for you also.

    Here is the code
    half.xml
    
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#aa99cc"
        android:orientation="vertical" >
    
        <VideoView
            android:id="@+id/VideoViewhalf"
            android:layout_width="match_parent"
            android:layout_height="300dp" >
        </VideoView>
    
       <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
    
            <Button
                android:id="@+id/btnfullScreen"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="fullscreen" />
    
            <ProgressBar
                android:id="@+id/progressBar"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
    
    
    
        </LinearLayout>
    
    </LinearLayout>
    
    HalfScreen activity
    public class HalfScreen extends Activity {
        Button btn;
        VideoView videoView = null;
        final int REQUEST_CODE = 5000;
        final String videoToPlay = "http://bffmedia.com/bigbunny.mp4";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.half);
            videoView = (VideoView) findViewById(R.id.VideoViewhalf);
            final ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBar);
            btn = (Button) findViewById(R.id.btnfullScreen);
    
            Uri video = Uri.parse(videoToPlay);
            videoView.setVideoURI(video);
            videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                public void onPrepared(MediaPlayer mp) {
                    progressBar.setVisibility(View.GONE);
                    videoView.requestFocus();
                    videoView.start();
                }
            });
    
            btn.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent videointent = new Intent(HalfScreen.this,
                            FullScreen.class);
                    videointent.putExtra("currenttime",
                            videoView.getCurrentPosition());
                    videointent.putExtra("Url", videoToPlay);
                    startActivityForResult(videointent, REQUEST_CODE);
    
                }
            });
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
                if (data.hasExtra("currenttime")) {
                    int result = data.getExtras().getInt("currenttime", 0);
                    if (result > 0) {
                        if (null != videoView) {
                            videoView.start();
                            videoView.seekTo(result);
                            ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBar);
                            progressBar.setVisibility(View.VISIBLE);
    
                        }
                    }
                }
            }
        }
    }
    
    full.xml
    
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ff99cc"
        android:orientation="vertical" >
    
        <VideoView
            android:id="@+id/VideoViewfull"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        </VideoView>
    
    </LinearLayout>
    
    FullScreen Activity
    
    public class FullScreen extends Activity {
        Button btn;
        VideoView videoView = null;
        int currenttime = 0;
        String Url = "";
        private static ProgressDialog progressDialog;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
    
            Bundle extras = getIntent().getExtras();
            if (null != extras) {
                currenttime = extras.getInt("currenttime", 0);
                Url = extras.getString("Url");
            }
            setContentView(R.layout.full);
            progressDialog = ProgressDialog.show(this, "", "Loading...", true);
            videoView = (VideoView) findViewById(R.id.VideoViewfull);
            MediaController mediaController = new MediaController(this);
            mediaController.setAnchorView(videoView);
            Uri video = Uri.parse(Url);
            videoView.setMediaController(mediaController);
            videoView.setVideoURI(video);
    
            videoView.setOnPreparedListener(new OnPreparedListener() {
    
                public void onPrepared(MediaPlayer arg0) {
                    progressDialog.dismiss();
                    videoView.start();
                    videoView.seekTo(currenttime);
                }
            });
        }
    
        @Override
        public void finish() {
            Intent data = new Intent();
            data.putExtra("currenttime", videoView.getCurrentPosition());
            setResult(RESULT_OK, data);
            super.finish();
        }
    }
    

    I achieved it by switching to landscape orientation and setting layout params to MATCH_PARENT. Just before switching to fullscreen mode, we need to store current orientation mode and VideoView params indefaultScreenOrientationMode and defaultVideoViewParams variables correspondingly. So that we can use them when we exit from video fullscreen mode. Thus, when you want to open video in fullscreen mode, use makeVideoFullScreen() method, to exit – exitVideoFullScreen().

    Please, note I used RelativeLayout for my VideoView, in your case it can be another layout type.

    private RelativeLayout.LayoutParams defaultVideoViewParams;
    private int defaultScreenOrientationMode;
    
    // play video in fullscreen mode
    private void makeVideoFullScreen() {
    
        defaultScreenOrientationMode = getResources().getConfiguration().orientation;
        defaultVideoViewParams = (LayoutParams) videoView.getLayoutParams();
    
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    
        videoView.postDelayed(new Runnable() {
    
            @Override
            public void run() {
                RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) new RelativeLayout.LayoutParams(
                        RelativeLayout.LayoutParams.MATCH_PARENT,
                        RelativeLayout.LayoutParams.MATCH_PARENT);
    
                videoView.setLayoutParams(params);
                videoView.layout(10, 10, 10, 10);
            }
        }, 700);
    }
    
    
    // close fullscreen mode
    private void exitVideoFullScreen() {
        setRequestedOrientation(defaultScreenOrientationMode);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
    
        videoView.postDelayed(new Runnable() {
    
            @Override
            public void run() {
                videoView.setLayoutParams(defaultVideoViewParams);
                videoView.layout(10, 10, 10, 10);
            }
        }, 700);
    }
    

    Try code below here.

    if (!isFullScreen())
            {
                Log.v("Full screen", "-----------is full screen------------");  
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
                DisplayMetrics displaymetrics = new DisplayMetrics();
                  getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
                  int height = displaymetrics.heightPixels;
                  int width = displaymetrics.widthPixels;
                  android.widget.FrameLayout.LayoutParams params = (android.widget.FrameLayout.LayoutParams) videoSurface.getLayoutParams();
                  params.width = width;
                  params.height=height;
                  params.setMargins(0, 0, 0, 0);
    
            }
            else{
                Log.v("Full screen", "-----------small screen------------");    
    
                DisplayMetrics displaymetrics = new DisplayMetrics();
                  getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
                  int height = displaymetrics.heightPixels;
                  int width = displaymetrics.widthPixels;
                  android.widget.FrameLayout.LayoutParams params = (android.widget.FrameLayout.LayoutParams) videoSurface.getLayoutParams();
                  params.width = width;
                  params.height=height / 3;
                  params.setMargins(0, 0, 0, 0);
            }
    

    whether you want to keep the aspect ratio of a video or stretch it to fill its parent area, using the right layout manager can get the job done.

    Keep the aspect ratio :

    <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="horizontal"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
    
    <VideoView
      android:id="@+id/videoView"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:layout_gravity="center"/>
    
    </LinearLayout>
    

    !!! To fill in the field:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    
        <VideoView android:id="@+id/videoViewRelative"
             android:layout_alignParentTop="true"
             android:layout_alignParentBottom="true"
             android:layout_alignParentLeft="true"
             android:layout_alignParentRight="true"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent">
        </VideoView>
    
    </RelativeLayout>
    
    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.