2013-12-21 11 views
9

Ich habe eine Videoansicht, die ein Video spielt, dessen Form nicht rechteckig ist (d. H. Ein rotierender Zylinder mit abgerundeten Ecken). Das Videobild wird in einem LinearLayout angezeigt, das eine Hintergrundfarbe hat. Ich möchte, dass der Hintergrund der Videoansicht transparent ist, damit der Zylinder über der Hintergrundfarbe ohne schwarze Ecken rotiert. Diese ist, was ich bekommen: current resultAndroid: VideoView-Hintergrund kann nicht auf transparent gesetzt werden

und das ist, was ich zu bekommen: enter image description here

Natürlich könnte man fragen, warum ich nicht nur die Hintergrundfarbe des Videos festgelegt an den Hintergrund an Farbe des Behälters, aber der Grund, den ich erreichen möchte, ist, weil mein folgender Schritt ist, ein Bild oder ein Muster als der Hintergrund des Behälters zu haben. Mein Layout XML ist die folgende:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#00aaff" 
    android:orientation="vertical" > 

    <VideoView 
     android:id="@+id/surface_view" 
     android:layout_width="254dp" 
     android:layout_height="200px" /> 

</LinearLayout> 

Während das Experimentieren habe ich versucht, einen Hintergrund für die Videoview zu setzen, aber das hatte als Folge völlig den Videoview zu verschleiern.

Vielen Dank.

Antwort

1

VideoView öffnet ein separates Fenster über dem aktuellen. Dies liegt daran, dass es auf der SurfaceView basiert. Und wir können Alpha nicht einstellen oder Animationen damit ausführen, weil es nicht mit Ihren anderen UI-Elementen synchronisiert ist.

Also: Sie sollen einen Video-Player auf TextureView Basis verwenden und belebten transparenten Hintergrund von "set alpha" zu TextureView können Sie diese Bibliotheken verwenden und einen Video-Player erhalten basierend auf TextureView

Verwandte Themen