web-dev-qa-db-ja.com

VideoViewに合わせてストレッチ、VideoViewのアスペクト比

私はビデオビューを埋めるためにビデオを引き伸ばそうとします。ターゲットは、デバイスで最初の写真のように見える(レイアウトプレビューで見えるように)ビューを作成することです。

この質問に対する回答のほとんどは、 このリンク に関するものです。

私はこれを試しましたが、それでもビデオ表示を埋めませんでした。

これは私のレイアウトコードです:

<?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:orientation="vertical" 
    Android:background="@drawable/search_gren_screen">

    <LinearLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:orientation="horizontal" >

        <Button
            Android:id="@+id/go_back"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:layout_gravity="center"
            Android:layout_weight="1"
            Android:onClick="onclick"
            Android:text="Try again" />

        <Button
            Android:id="@+id/back_to_pick_song"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:layout_weight="1"
            Android:text="Select another song" 
            Android:onClick="onclick" />

        <Button
            Android:id="@+id/btn_continue"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:layout_gravity="center"
            Android:layout_weight="1"
            Android:onClick="onclick"
            Android:text="Amazing, continue!" />
    </LinearLayout>

    <FrameLayout 
      Android:layout_width="fill_parent"
      Android:layout_height="fill_parent">
    <VideoView 
        Android:id="@+id/videoView1"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:layout_alignParentBottom="true"
        Android:layout_alignParentLeft="true"
        Android:layout_alignParentRight="true"
        Android:layout_alignParentTop="true"
        Android:layout_gravity="center" />
    </FrameLayout>
</LinearLayout>

ここに私の宣言したレイアウトのプレビューがあります:

enter image description here

ただし、デバイスでの結果は異なります。

enter image description here

13
idan

外部レイアウトを相対レイアウトにして、その中にVideoViewを配置してください。

何かのようなもの:

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
     Android:id="@+id/trim_container"
     Android:layout_width="match_parent"
     Android:layout_height="match_parent" >

     <LinearLayout
          Android:id="@+id/buttonContainer"
          Android:layout_width="match_parent"
          Android:layout_height="wrap_content"
          Android:orientation="horizontal" >

     <Button
          Android:id="@+id/go_back"
          Android:layout_width="match_parent"
          Android:layout_height="match_parent"
          Android:layout_gravity="center"  
          Android:layout_weight="1"
          Android:onClick="onclick"
          Android:text="Try again" />

     <Button
          Android:id="@+id/back_to_pick_song"
          Android:layout_width="match_parent"
          Android:layout_height="match_parent"
          Android:layout_weight="1"
          Android:text="Select another song" 
          Android:onClick="onclick" />

    <Button
          Android:id="@+id/btn_continue"
          Android:layout_width="match_parent"
          Android:layout_height="wrap_content"
          Android:layout_gravity="center"
          Android:layout_weight="1"
          Android:onClick="onclick"
          Android:text="Amazing, continue!" />
  </LinearLayout>

  <VideoView
     Android:id="@+id/VideoView"
     Android:layout_width="match_parent"
     Android:layout_height="match_parent"
     Android:layout_alignParentLeft="true"
     Android:layout_alignParentRight="true"
     Android:layout_alignParentBottom="true"
     Android:layout_below="@id/buttonContainer"/>
</RelativeLayout>
34
Joris

別の solution が見つかりました。カスタムVideoViewは必要ありません

6
TrueCH

ビデオビューは相対レイアウトの内側にある必要があります。以下に例を示します。私の場合、フルスクリーンボタンで非常にうまく機能します。

<RelativeLayout
            Android:layout_width="match_parent"
            Android:layout_height="0dp"
            Android:layout_weight="3"
            Android:id="@+id/videoVIewLinId"
            Android:layout_gravity="center"
            Android:gravity="center"
            Android:scaleType="fitXY"

            >
                <VideoView
                    Android:layout_alignParentTop="true"
                    Android:layout_alignParentBottom="true"
                    Android:layout_alignParentLeft="true"
                    Android:layout_alignParentRight="true"
                    Android:layout_alignParentEnd="true"
                    Android:layout_alignParentStart="true"
                    Android:layout_width="fill_parent"
                    Android:layout_height="fill_parent"
                    Android:id="@+id/videoViewId"
                    />


                <ImageView
                    Android:id="@+id/fullScreenBtnIdOnlineMedia"
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:src="@drawable/ic_action_full_screen"
                    Android:layout_alignParentEnd="true"
                    Android:layout_alignParentBottom="true"
                    Android:layout_marginEnd="10dp"

                    />

        </RelativeLayout>
0