Java 类android.util.Rational 实例源码

项目:moonlight-android    文件:Game.java   
@Override
public void onUserLeaveHint() {
    super.onUserLeaveHint();

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        if (prefConfig.enablePip && connected) {
            enterPictureInPictureMode(
                    new PictureInPictureParams.Builder()
                            .setAspectRatio(new Rational(prefConfig.width, prefConfig.height))
                            .setSourceRectHint(new Rect(
                                    streamView.getLeft(), streamView.getTop(),
                                    streamView.getRight(), streamView.getBottom()))
                            .build());
        }
    }
}
项目:android-PictureInPicture    文件:MediaSessionPlaybackActivity.java   
/** Enters Picture-in-Picture mode. */
void minimize() {
    if (mMovieView == null) {
        return;
    }
    // Hide the controls in picture-in-picture mode.
    mMovieView.hideControls();
    // Calculate the aspect ratio of the PiP screen.
    Rational aspectRatio = new Rational(mMovieView.getWidth(), mMovieView.getHeight());
    mPictureInPictureParamsBuilder.setAspectRatio(aspectRatio).build();
    enterPictureInPictureMode(mPictureInPictureParamsBuilder.build());
}
项目:android-PictureInPicture    文件:MainActivity.java   
/** Enters Picture-in-Picture mode. */
void minimize() {
    if (mMovieView == null) {
        return;
    }
    // Hide the controls in picture-in-picture mode.
    mMovieView.hideControls();
    // Calculate the aspect ratio of the PiP screen.
    Rational aspectRatio = new Rational(mMovieView.getWidth(), mMovieView.getHeight());
    mPictureInPictureParamsBuilder.setAspectRatio(aspectRatio).build();
    enterPictureInPictureMode(mPictureInPictureParamsBuilder.build());
}
项目:Android-O-Sample    文件:PipActivity.java   
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pip_test);

    mFramePlayer = findViewById(R.id.frame_mock_player);
    mBtnPip = findViewById(R.id.btn_minimize);

    mBtnPip.setOnClickListener(view -> {
        if (android.os.Build.VERSION.SDK_INT >= 26) {
            //Trigger PiP mode
            try {
                Rational rational = new Rational(mFramePlayer.getWidth(), mFramePlayer.getHeight());

                PictureInPictureParams mParams =
                        new PictureInPictureParams.Builder()
                                .setAspectRatio(rational)
                                .build();

                enterPictureInPictureMode(mParams);
            } catch (IllegalStateException e) {
                e.printStackTrace();
            }
        } else {
            Toast.makeText(PipActivity.this, "API 26 needed to perform PiP", Toast.LENGTH_SHORT).show();
        }
    });

}
项目:Android-O-Feature    文件:PictureInPictureActivity.java   
private View.OnClickListener onPictureInPictureClick() {
    return view -> {
        if (exoPlayer != null && exoPlayer.getPlaybackState() == SimpleExoPlayer.STATE_READY) {
            int videoWidth = exoPlayer.getVideoFormat().width;
            int videoHeight = exoPlayer.getVideoFormat().height;
            PictureInPictureParams params = new PictureInPictureParams.Builder()
                    .setAspectRatio(new Rational(videoWidth, videoHeight))
                    .build();
            enterPictureInPictureMode(params);
        } else {
            Toast.makeText(PictureInPictureActivity.this, R.string.video_playback_not_ready, Toast.LENGTH_SHORT).show();
        }
    };
}
项目:Camera2    文件:CaptureDataSerializer.java   
private static String toString(ColorSpaceTransform transform) {
    StringBuilder str = new StringBuilder();
    Rational[] rationals = new Rational[9];
    transform.copyElements(rationals, 0);
    str.append("ColorSpaceTransform: ");
    str.append(Arrays.toString(rationals));
    return str.toString();
}
项目:Agora-Picture-in-Picture-Android    文件:VideoChatViewActivity.java   
public void onEnterIntoPIPClicked(View view) {
    PictureInPictureParams params = new PictureInPictureParams.Builder()
            .setAspectRatio(new Rational(10, 16)) // Portrait Aspect Ratio
            .build();
    enterPictureInPictureMode(params);
}
项目:ideal-camera    文件:CameraCapabilities.java   
private void init() {
    initCapabilities();
    StreamConfigurationMap configurationMap = mCharacteristics.get(SCALER_STREAM_CONFIGURATION_MAP);
    mSupportedPreviewSizes.addAll(Arrays.asList(configurationMap.getOutputSizes(SurfaceTexture.class)));
    for (int format : configurationMap.getOutputFormats()) {
        mSupportedPreviewFormats.add(format);
    }

    // TODO: We only support MediaRecorder video capture
    mSupportedVideoSizes.addAll(Arrays.asList(configurationMap.getOutputSizes(MediaRecorder.class)));

    // TODO: We only support JPEG image capture
    mSupportedPhotoSizes.addAll(Arrays.asList(configurationMap.getOutputSizes(ImageFormat.JPEG)));
    mSupportedPhotoFormats.addAll(mSupportedPreviewFormats);
    mActiveArray = mCharacteristics.get(CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE);

    buildSceneModes(mCharacteristics);
    buildFlashModes(mCharacteristics);
    buildFocusModes(mCharacteristics);
    buildWhiteBalances(mCharacteristics);

    buildAntibandingModes(mCharacteristics);

    buildColorEffects(mCharacteristics);

    // TODO: Populate mSupportedFeatures

    // TODO: Populate mPreferredPreviewSizeForVideo

    Range<Integer> ecRange = mCharacteristics.get(CONTROL_AE_COMPENSATION_RANGE);
    mMinExposureCompensation = ecRange.getLower();
    mMaxExposureCompensation = ecRange.getUpper();

    Rational ecStep = mCharacteristics.get(CONTROL_AE_COMPENSATION_STEP);
    mExposureCompensationStep = (float) ecStep.getNumerator() / ecStep.getDenominator();

    mMaxNumOfFacesSupported = mCharacteristics.get(STATISTICS_INFO_MAX_FACE_COUNT);
    mMaxNumOfMeteringArea = mCharacteristics.get(CONTROL_MAX_REGIONS_AE);

    mMaxZoomRatio = mCharacteristics.get(SCALER_AVAILABLE_MAX_DIGITAL_ZOOM);
    // TODO: Populate mHorizontalViewAngle
    // TODO: Populate mVerticalViewAngle
    // TODO: Populate mZoomRatioList
    // TODO: Populate mMaxZoomIndex

    if (supports(FocusMode.AUTO)) {
        mMaxNumOfFocusAreas = mCharacteristics.get(CONTROL_MAX_REGIONS_AF);
        if (mMaxNumOfFocusAreas > 0) {
            mSupportedFeatures.add(Feature.FOCUS_AREA);
        }
    }
    if (mMaxNumOfMeteringArea > 0) {
        mSupportedFeatures.add(Feature.METERING_AREA);
    }

    if (mMaxZoomRatio > mCharacteristics.get(SCALER_AVAILABLE_MAX_DIGITAL_ZOOM)) {
        mSupportedFeatures.add(Feature.ZOOM);
    }

    // TODO: Detect other features
}
项目:opentok-android-sdk-samples    文件:MainActivity.java   
public void pipActivity(View view) {
    PictureInPictureParams params = new PictureInPictureParams.Builder()
            .setAspectRatio(new Rational(9,16)) // Portrait Aspect Ratio
            .build();
    enterPictureInPictureMode(params);
}