본문 바로가기
안드로이드 자바

[Android][JAVA]PiP 지원 적용하기

by teamnova 2023. 3. 30.
728x90

안녕하세요 이번시간에는 Picture-in-Picture 를 지원하는 방법에 대해서 소개하겠습니다.

PIP란?

이렇게 동영상, 이미지 등 축소된 화면을 한쪽에 배치되어 볼 수 있도록 합니다.

 

기본적으로 시스템은 PiP를 자동으로 지원하지 않습니다. 사용하기 위해서는 다음과 같이  매니페스트 파일에 추가합니다.

<activity android:name="VideoActivity"
    android:supportsPictureInPicture="true"
    android:configChanges=
        "screenSize|smallestScreenSize|screenLayout|orientation"

해당 코드를 작성합니다 

 

MainAcitivity.java

package com.example.pipexam;

import androidx.appcompat.app.AppCompatActivity;

import android.app.PictureInPictureParams;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.util.Rational;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private final String TAG=this.getClass().getSimpleName();
    private TextView textView;
    PictureInPictureParams.Builder pipBuilder;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView=findViewById(R.id.text_view);
    }

    /**
     * 사용자 선택의 결과로 활동이 백그라운드로 이동하려고 할 때 활동 라이프사이클의 일부로 호출됩니다. 
     * 예를 들어, 사용자가 홈 키를 누를 때 onUserLeaveHint가 호출되지만 수신 전화로 인해 
     * 통화 중인 활동이 자동으로 전면에 표시되면 onUserLeaveHint는 중단된 활동에 대해 호출되지 않습니다. 
     * 호출된 경우 이 메서드는 활동이 일시 중지 콜백되기 직전에 호출됩니다.
     * 이 콜백 및 onUser Interaction은 활동이 상태 표시줄 통지를 지능적으로 관리하는 데 도움을 주기 위한 것입니다. 
     * 특히 활동이 통지를 취소할 적절한 시간을 결정하는 데 도움을 주기 위한 것입니다.
     * */
    @Override
    protected void onUserLeaveHint() {
        Log.d(TAG, "onUserLeaveHint: ");
        super.onUserLeaveHint();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            pipBuilder= new PictureInPictureParams.Builder();
            enterPictureInPictureMode(pipBuilder.build());
            textView.setText("PIP Mode!!!");
        }
    }
}

 

 

이 부분을 잘 활용하면 화상통화 앱, 동영상 앱 등 구현할 때 좋을것 같습니다!

 

 

Picture-in-picture - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Display of a video window within another window Picture-in-picture (PiP) is a feature that can be found in television receivers, personal computers and smartphones, consisting of a vid

en.wikipedia.org

 

Picture-in-picture (PiP) support  |  Android Developers

Android 8.0 allows activities to launch in picture-in-picture (PiP) mode

developer.android.com