Android中VideoView视频的全屏和半屏的切换

  1. private boolean fullscreen=false;
    if(!fullscreen){//设置RelativeLayout的全屏模式  
  2.        RelativeLayout.LayoutParams layoutParams=  
  3.               new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT);  
  4.            layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);  
  5.            layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);  
  6.            layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);  
  7.            layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);  
  8.            mVideoView01.setLayoutParams(layoutParams);  
  9.              
  10.            fullscreen = true;//改变全屏/窗口的标记  
  11.        }else{//设置RelativeLayout的窗口模式  
  12.           RelativeLayout.LayoutParams lp=new  RelativeLayout.LayoutParams(320,240);  
  13.           lp.addRule(RelativeLayout.CENTER_IN_PARENT);  
  14.             mVideoView01.setLayoutParams(lp);  
  15.             fullscreen = false;//改变全屏/窗口的标记  
  16.    
  17.     } 

 

 

   在oncreate方法之前调用

  //去掉头信息
        requestWindowFeature(Window.FEATURE_NO_TITLE);
         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN)
//判断手机屏幕的方向
        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        width=dm.widthPixels;
        heigh=dm.heightPixels;
        if(width/heigh>0)
        {
            //横屏
            path = bundle.getString("widthurl");
    1. RelativeLayout.LayoutParams layoutParams=  
    2.               new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT);  
    3.            layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);  
    4.            layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);  
    5.            layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);  
    6.            layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);  
    7.            mVideoView01.setLayoutParams(layoutParams);  
    8.              
    9.            fullscreen = true;//改变全屏/窗口的标记 


        }
        if(width/heigh==0)
        {
            //竖屏
            path = bundle.getString("heighturl");
    1. RelativeLayout.LayoutParams lp=new  RelativeLayout.LayoutParams(320,240);  
    2.           lp.addRule(RelativeLayout.CENTER_IN_PARENT);  
    3.             mVideoView01.setLayoutParams(lp);  
    4.             fullscreen = false;//改变全屏/窗口的标记 

        }

第二种方法

  1. import android.content.Context;  
  2. import android.util.AttributeSet;  
  3. import android.widget.VideoView;  
  4.   
  5. public class MyVideoView extends VideoView {  
  6.   
  7.     public MyVideoView(Context context, AttributeSet attrs, int defStyle) {  
  8.         super(context, attrs, defStyle);  
  9.     }  
  10.   
  11.     public MyVideoView(Context context, AttributeSet attrs) {  
  12.         super(context, attrs);  
  13.     }  
  14.   
  15.     public MyVideoView(Context context) {  
  16.         super(context);  
  17.     }  
  18.   
  19.     @Override  
  20.     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  
  21.         // TODO Auto-generated method stub  
  22.   
  23.         int width = getDefaultSize(0, widthMeasureSpec);  
  24.         int height = getDefaultSize(0, heightMeasureSpec);  
  25.         setMeasuredDimension(width, height);  
  26.     }  
  27.   
  28. }
  29. --------------------
    布局文件
    1. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    2.     xmlns:tools="http://schemas.android.com/tools"  
    3.     android:layout_width="match_parent"  
    4.     android:layout_height="match_parent"  
    5.     android:orientation="vertical" >  
    6.   
    7.     <RelativeLayout  
    8.         android:layout_width="match_parent"  
    9.         android:layout_height="match_parent" >  
    10.   
    11.         <com.jone.jonevideo.widget.MyVideoView  
    12.             android:id="@+id/audtoView"  
    13.             android:layout_width="match_parent"  
    14.             android:layout_height="match_parent" />  
    15.     </RelativeLayout>  
    16.   
    17.     <LinearLayout  
    18.         android:layout_width="match_parent"  
    19.         android:layout_height="wrap_content"  
    20.         android:layout_gravity="bottom" >  
    21.   
    22.         <Button  
    23.             android:id="@+id/audio_start"  
    24.             style="@style/layout_wrap_content"  
    25.             android:text="start_audio" />  
    26.   
    27.         <Button  
    28.             android:id="@+id/audio_2_video"  
    29.             style="@style/layout_wrap_content"  
    30.             android:text="@string/switch_audio_2_vidwo" />  
    31.   
    32.         <Button  
    33.             android:id="@+id/entry_list_audio"  
    34.             style="@style/layout_wrap_content"  
    35.             android:text="@string/entry_audio_list" />  
    36.     </LinearLayout>  
    37.   
    38. </FrameLayout> 
    39. ------------
      全屏的设置
      1. if(!fullscreen){//设置RelativeLayout的全屏模式  
      2.        RelativeLayout.LayoutParams layoutParams=  
      3.               new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT);  
      4.            layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);  
      5.            layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);  
      6.            layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);  
      7.            layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);  
      8.            mVideoView01.setLayoutParams(layoutParams);  
      9.              
      10.            fullscreen = true;//改变全屏/窗口的标记  
      11.        }else{//设置RelativeLayout的窗口模式  
      12.           RelativeLayout.LayoutParams lp=new  RelativeLayout.LayoutParams(320,240);  
      13.           lp.addRule(RelativeLayout.CENTER_IN_PARENT);  
      14.             mVideoView01.setLayoutParams(lp);  
      15.             fullscreen = false;//改变全屏/窗口的标记  
      16.        }     

 

posted @ 2016-08-23 16:47  dangxuetingbk  阅读(9633)  评论(0编辑  收藏  举报