2013-04-24 15 views
10

Cerco di allungare il video per mirare a riempire videoview. L'obiettivo è creare una vista che nel dispositivo assomigli alla prima immagine (come se fosse nell'anteprima del layout).Estende per riempire VideoView, aspect ratio di VideoView

La maggior parte delle risposte a questa domanda si riferisce a this link.

Ho provato questo, ma non ho ancora riempito la visualizzazione del video.

Questo il mio codice di layout:

<?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> 

Ecco un'anteprima del mio layout dichiarato:

enter image description here

Tuttavia, il risultato sul dispositivo è diverso:

enter image description here

+0

Il tuo codice di layout è okay per soddisfare le tue necessità. Ma tieni presente che 'VideoView' si restringerà/allungherà rispetto al video che suona in esso. –

+0

ok, quindi ho bisogno di cambiare le proporzioni del media mediaer per aggiungere mMediaRecorder.setVideoSize (640, 480); lo provo e funziona ... ??? – idan

+0

controlla questa risposta http://stackoverflow.com/a/38971707/1153703 –

risposta

25

Cerca di rendere il tuo layout esterno un layout relativo e metti la VideoView al suo interno.

Qualcosa di simile:

<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> 
+0

perfetto .... grazie .... – idan

+0

Ottimo .. funziona ... – Neela

+0

E 'un cazzo ... funziona! Questo è il modo più semplice per ottenere questa cosa. Sto sprecando un sacco di tempo cercando di ottenere questo. Molte grazie!!!!!! – KinGPinG

5

trovato un altro solution. Non è necessario personalizzare VideoView

Problemi correlati