2011-10-21 69 views
3

我正在一個應用程序,我有視頻堆疊在一個圖像的頂部。你可以在附圖中看到。爲什麼視頻播放器會像照片一樣控制設備底部的默認設置?如果可能的話,我想把它們移動到頂部。我對這個屏幕布局是:視頻控件默認設備底部

<?xml version="1.0" encoding="UTF-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/mobile_vforum_bg" 
    > 
    <VideoView 
     android:id="@+id/vidPlayer" 
     android:layout_width="320dip" 
     android:layout_height="240dip"> 
    </VideoView> 
    <WebView 
     android:id="@+id/slideHolder" 
     android:layout_width="320dip" 
     android:layout_height="240dip" 
     android:layout_gravity="bottom"> 
    </WebView> 
    <ListView 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:id="@+id/slideList" 
     android:background="#000000"> 
    </ListView> 
</FrameLayout> 

Uploaded Image of phone

人知道,如果我可以在視頻的頂部移動視頻控件?

+0

根據'VideoView'的文檔...它「負責從視頻計算其測量值,以便它可以在任何佈局管理器中使用」。而不是在'dip'中設置寬度/高度,而只是簡單地使用'wrap_content'來嘗試? – Squonk

+0

我嘗試設置VideoView寬度/高度來包裝內容,並獲得相同的行爲。這將是一個愚蠢的一天googling我可以告訴 – Ronnie

回答

0

它可能與您使用FrameLayout的事實有關,並且顯示屏上沒有足夠的空間來顯示所有內容。您是否有理由需要針對您的尺寸使用精確的像素規格?如果可能的話,你應該總是避免這些,因爲在android中你永遠不知道你的應用程序將在哪個屏幕上運行。

+0

以及320x240是我的視頻的大小。我的其他選擇是什麼? – Ronnie

+0

那是可以理解的。你有沒有嘗試過使用其他佈局? –

+0

我試過一個LinearLayout,它的行爲方式是一樣的 – Ronnie

3

你想要做的是確保爲控件設置錨點視圖並確保錨點視圖不佔用整個屏幕。例如,這裏有一個樣本佈局(不完整的,但跨獲取點):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    > 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/preview_video_container_layout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     > 
     <VideoView 
      android:id="@+id/preview_video_view" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
     /> 
    </LinearLayout> 
</LinearLayout> 

然後,在你的代碼,當你設置的媒體控制器,你會做以下幾點:

mPreview = (VideoView) findViewById(R.id.preview_video_view); 
    MediaController mediaController = new MediaController(this); 
    mediaController.setAnchorView(mPreview); 

的關鍵在於內部線性佈局具有包裹高度的內容,因此它不佔用整個屏幕。這將最終顯示視頻下方的控件。如果你想做一些更時髦的事情,比如在視頻本身的頂部有控制(然後出現/消失),那麼我相信你將不得不創建自己的控件並將它們與視頻視圖一起放置。

相關問題