Установите видео в качестве фона

Я делаю экран входа в приложение для Android и задаюсь вопросом, как использовать видео в качестве фона вместо того, чтобы иметь изображение или простые цвета?

Я хочу сделать его похожим на экран входа в приложение Spotify/Bible, где у них есть воспроизведение видео, и у вас есть кнопки для входа или регистрации.

Изображения -

(Нажмите, чтобы увеличить)

IMG:

IMG:

Ответ 1

Вам нужно всего лишь несколько шагов, чтобы установить видео в качестве фона вашего приложения.

  • Создайте просмотр видео и убедитесь, что он занимает всю область. Если вы используете компоновку ограничений, вам нужно установить все ограничения вашего видеообзора в родительский.
  • Создайте новый каталог под названием "raw" в каталоге "res"
  • Поместите видеофайл в папку "raw"
  • Воспроизвести видео
    VideoView videoview = (VideoView) findViewById(R.id.videoview);
    Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.test);
    videoview.setVideoURI(uri);
    videoview.start();
    
    Я сделал видео, в котором объясняется, как создать экран входа в JOOX в андроиде, который более или менее похож на приложение Spotify. Не стесняйтесь проверить это и сообщите мне, если это поможет:)

https://youtu.be/tPeDn18FrGY

Ответ 2

Сначала создайте новый XML и добавьте VideoView внутри него:

my_video_background.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<VideoView
    android:id="@+id/videoView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentBottom="true"
    android:layout_alignParentTop="true"
    android:layout_gravity="center" />

</RelativeLayout>

Затем включите этот файл в свой основной макет, который имеет Buttons, скажем:

splash.xml

<?xml version="1.0" encoding="utf-8"?>    
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#29000000">

<include layout="@layout/my_video_background" />

<!--Like Spotify image-->

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="46dp"
    android:src="@android:drawable/ic_dialog_map" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="horizontal">

    <Button
        android:id="@+id/login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:background="#FF2D2D2D"
        android:text="LOG IN"
        android:textColor="@android:color/white" />

    <Button
        android:id="@+id/signUp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:background="#FF669900"
        android:text="SIGN IN"
        android:textColor="@android:color/white" />

</LinearLayout>
</RelativeLayout>

Что это!

Ответ 3

Ответ и видеоролик NatureDevil великолепны, но сначала две вещи отсутствуют, если вы нажмете на кнопку и откройте новую активность, например, поют, и решили нажать на стрелку назад на устройстве, домашний экран будет показывать черный экран, потому что видео не перезапускается, поэтому вам нужно добавить это

@Override
protected void onResume() {
    super.onResume();
    // to restart the video after coming from other activity like Sing up
    mVideoView.start();


}

другая вещь, чтобы VideoView растянулся слева направо во весь экран, добавьте:

android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"