Как создать собственный макет в режиме Picture in Picture? - PullRequest
0 голосов
/ 03 мая 2019

Мне нужно реализовать режим Picture In Picture в моем приложении.

  1. На странице часов времени моего приложения, когда я выбираю время, таймер запускается на картинке в режиме просмотра изображения. Оставшийся класс должен большой экран?
  2. На картинке, как создать собственный макет?

Примечание: Я использую фрагмент в этом классе (как установить эту строку android:supportsPictureInPicture="true" в программно для класса фрагмента)

Я приложил образцы изображений для вашей справки. пожалуйста, отошлите это.

enter image description here

1 Ответ

0 голосов
/ 03 мая 2019

Я использую DraggblePanel для того же типа эффекта

private void initializeDraggablePanel(Fragment fragmentView, Fragment bottomFragment) {
        draggablePanel.removeAllViews();
        draggablePanel.setFragmentManager(getSupportFragmentManager());
        draggablePanel.setTopFragment((Fragment) fragmentView);
        draggablePanel.setBottomFragment(bottomFragment);
        draggablePanel.setVisibility(View.VISIBLE);
        draggablePanel.setClickToMaximizeEnabled(true);
        draggablePanel.setDraggableListener(new DraggableListener() {
            @Override
            public void onClosedToLeft() {
                draggablePanel.removeAllViews();
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            }

            @Override
            public void onMinimized() {
                isFullScFromMini = true;
                pipHandler.removeCallbacks(runnapipa);
                pipHandler.postDelayed(runnapipa, PIP_DELAY);
                draggablePanel.disableBottomView(true);
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            }

            @Override
            public void onClosedToRight() {
                draggablePanel.removeAllViews();
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            }

            @Override
            public void onUnMaximized() {
                draggablePanel.disableBottomView(false);
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            }

            @Override
            public void onMaximized() {
                isFullScFromMini = true;
                pipHandler.removeCallbacks(runnapipa);
                pipHandler.postDelayed(runnapipa, PIP_DELAY);
                draggablePanel.disableBottomView(false);
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);
            }
        });
        TypedValue typedValue = new TypedValue();
        getResources().getValue(R.dimen.x_scale_factor, typedValue, true);
        float xScaleFactor = typedValue.getFloat();
        typedValue = new TypedValue();
        getResources().getValue(R.dimen.y_scale_factor, typedValue, true);
        float yScaleFactor = typedValue.getFloat();
        draggablePanel.setXScaleFactor(xScaleFactor);
        draggablePanel.setYScaleFactor(yScaleFactor);
        draggablePanel.setTopViewHeight(
                getResources().getDimensionPixelSize(R.dimen.top_fragment_height));
        draggablePanel.setTopFragmentMarginRight(
                getResources().getDimensionPixelSize(R.dimen.top_frag_right_margin));
        draggablePanel.setTopFragmentMarginBottom(
                getResources().getDimensionPixelSize(R.dimen.top_fragment_margin));
        draggablePanel.initializeView();
        draggablePanel.maximize();
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);
    }

Для полной проверки примера Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...