Android 동영상을 배경화면 넣기
Android 동영상을 배경화면 넣기
Android 배경화면에 동영상을 넣으려면 VideoView를 사용한다
res/raw 폴더를 생성한다(Android Resource Directory)
raw 폴더 안에 동영상을 넣는다.
java code로 동영상을 id로 가져올 때 Cannotcannot resolve symbol raw error가 뜰 수 있는데 Clean Project하거나 Android Studio를 껐다 다시 키고 앱 실행시키니까 해결되었다
아래 예제에서 로그인 화면 처럼 좀 예쁘게 꾸미기 위해서 build.gradle 에 dependencies com.google.android.material:material:1.1.0' 을 추가했다. VideoView예제만 보려면 나머지 위젯은 삭제해도 무방
activity_main.xml
<VideoView android:id="@+id/video_view" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"/>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/login_email_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_margin="20dp"
android:padding="10dp"
android:background="#55ffffff"
>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/login_password_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
app:layout_constraintTop_toBottomOf="@id/login_email_input_layout"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_margin="20dp"
android:padding="10dp"
android:background="#55ffffff"
>
</com.google.android.material.textfield.TextInputLayout>
- MainActivity.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
VideoView videoView = findViewById(R.id.video_view);
videoView.setVideoURI(Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.sea));
videoView.start();
videoView.setOnPreparedListener(onPreparedListener);
}
MediaPlayer.OnPreparedListener onPreparedListener = new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setLooping(true);
}
};
```