2011-10-21 11 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の幅/高さを設定しようとしましたが、同じ動作が発生します。グーグル・グーグルでは、私が言うことができる長い一日になるだろう – Ronnie

答えて

0

おそらく、FrameLayoutを使用していて、すべてを表示するための十分なスペースがディスプレイにないことが関係しています。サイズに正確なピクセル仕様を使用する必要がある理由はありますか?アンドロイドでは、あなたのアプリが実行される画面のサイズを決して知ることができないので、可能な限り避けるべきです。

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

キーは内側の線形レイアウトが高さのラップコンテンツを持つので、画面全体を占めていないことです。これでビデオのすぐ下にコントロールが表示されます。ビデオそのものの上にコントロールを置いているように(そして、表示/非表示にして)、さらにファンキーなことをしたいのなら、自分でコントロールを作成してビデオビューでレイアウトする必要があると思います。

関連する問題