У меня есть VideoView, играющий видео, форма которого не прямоугольная (т. Е. Вращающийся цилиндр с закругленными углами). Видеоизображение отображается в LinearLayout, который имеет фоновый цвет. Я хотел бы, чтобы фон видеоизображения был прозрачным, чтобы обеспечить, чтобы цилиндр вращался поверх цвет фона без каких-либо черных углов. Это то, что я получаю:
И это то, что я хочу получить:
Конечно, вы могли бы спросить, почему бы мне просто не установить фоновый цвет видео в соответствии с цветом фона в контейнере, но причина, по которой я хочу достичь этого, состоит в том, что мой следующий шаг – иметь изображение или шаблон Как фон контейнера. Мой макет xml выглядит следующим образом:
<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>
Во время экспериментов я попытался установить фон для видеозаписи, но в результате это полностью заслонило видео.
Спасибо.
VideoView открывает отдельное Окно над текущим. Это связано с тем, что он основан на SurfaceView. И мы не можем настроить альфа-версию или выполнять анимацию с ней, потому что она не синхронизирована с другими элементами пользовательского интерфейса.
Итак: вы должны использовать видеоплеер на основе TextureView и трансформировать прозрачный фон с помощью «set alpha» в TextureView. Вы можете использовать эти библиотеки и получить видеопроигрыватель на основе TextureView