Как изменить размер режима PIP в Android - PullRequest
1 голос
/ 21 мая 2019

Я пытаюсь реализовать режим «картинка в картинке» в моем приложении.Я внедряю карту Google в режиме PIP, но не могу изменить размер полноэкранной карты.Он всегда увеличивает центральную точку карты.Я сделал RND, связанный с этой проблемой, но не нашел никакого правильного ответа.В принципе, мне нужно макет, как WhatsApp приложение pip Screen в моем приложении, как реализовать?И мой код здесь:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

        Display display=getWindowManager().getDefaultDisplay();
        Point size=new Point();
        display.getSize(size);
        int width=size.x;
        int height=size.y;
        Rational aspectRatio=new Rational(width,height);
        PictureInPictureParams params = new PictureInPictureParams.Builder()
                .setAspectRatio(aspectRatio).build();
        enterPictureInPictureMode(params);
    }

и вот код манифеста:

<activity android:name=".activities.MainActivity"
        android:supportsPictureInPicture="true"
        android:resizeableActivity="true"
        android:launchMode="singleTask"
        android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"/>

В этом коде у меня есть экран как

enter image description here

и я хочу

enter image description here

Как мне решить эту проблему?

Заранее спасибо!!

1 Ответ

1 голос
/ 21 мая 2019

Просто измени свой код

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

    Display display=getWindowManager().getDefaultDisplay();
    Point size=new Point();
    display.getSize(size);
    int width=size.x;
    int height=size.y;
    Rational aspectRatio=new Rational(width,height);
    PictureInPictureParams params = new PictureInPictureParams.Builder()
            .setAspectRatio(aspectRatio).build();
    enterPictureInPictureMode(params);
}

Для

Rational aspectRatio = new Rational(3, 4);

        PictureInPictureParams params = new PictureInPictureParams.Builder()
                .setAspectRatio(aspectRatio).build();
        enterPictureInPictureMode(params);
...