2014-01-15 67 views
1

我想,當用戶按下全屏按鈕 我已經在互聯網上搜索,但所有的解決方案,我發現犯規」解決這個問題開關videoview到全屏模式的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

你有什麼想法

+0

你有沒有找到任何解決辦法發揮全屏 – Prabs

回答

0

嘗試requestLayout()通話設置佈局PARAMS

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

偏偏視頻,沒有發生一些問題 – begiPass

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

不知道,因爲可以」所有的代碼,但對我來說,似乎你不需要設置保證金 你可能只是操縱視圖的寬度和重力。

+0

我只是說你的代碼,但總是同樣的問題 – begiPass

+0

是的,它不應該工作,直到您更改可見於View.GONE屏幕上發生的所有其他控制。還應該更改id @ + id/video_details_video的FrameLayout高度。 在我看來,使用ViewGroup插入自定義佈局來實現自己的類會更好。 –

0

您可能已經忘記了這行代碼以適合全屏。

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

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