android.util.Size Java Examples

The following examples show how to use android.util.Size. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source Project: android_9.0.0_r45   Author: lulululbj   File: SizeAreaComparator.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * {@inheritDoc}
 */
@Override
public int compare(Size size, Size size2) {
    checkNotNull(size, "size must not be null");
    checkNotNull(size2, "size2 must not be null");

    if (size.equals(size2)) {
        return 0;
    }

    long width = size.getWidth();
    long width2 = size2.getWidth();
    long area = width * size.getHeight();
    long area2 = width2 * size2.getHeight();

    if (area == area2) {
        return (width > width2) ? 1 : -1;
    }

    return (area > area2) ? 1 : -1;
}
 
Example #2
Source Project: patrol-android   Author: stfalcon-studio   File: Camera2VideoFragment.java    License: GNU General Public License v3.0 6 votes vote down vote up
/**
 * Given {@code choices} of {@code Size}s supported by a camera, chooses the smallest one whose
 * width and height are at least as large as the respective requested values, and whose aspect
 * ratio matches with the specified value.
 *
 * @param choices     The list of sizes that the camera supports for the intended output class
 * @param width       The minimum desired width
 * @param height      The minimum desired height
 * @param aspectRatio The aspect ratio
 * @return The optimal {@code Size}, or an arbitrary one if none were big enough
 */
private static Size chooseOptimalSize(Size[] choices, int width, int height, Size aspectRatio) {
    // Collect the supported resolutions that are at least as big as the preview Surface
    List<Size> bigEnough = new ArrayList<Size>();
    int w = aspectRatio.getWidth();
    int h = aspectRatio.getHeight();
    for (Size option : choices) {
        if (option.getHeight() == option.getWidth() * h / w &&
                option.getWidth() >= width && option.getHeight() >= height) {
            bigEnough.add(option);
        }
    }

    // Pick the smallest of those, assuming we found any
    if (bigEnough.size() > 0) {
        return Collections.min(bigEnough, new CompareSizesByArea());
    } else {
        Log.e(TAG, "Couldn't find any suitable preview size");
        return choices[0];
    }
}
 
Example #3
/**
 * Given {@code choices} of {@code Size}s supported by a camera, chooses the smallest one whose
 * width and height are at least as large as the minimum of both, or an exact match if possible.
 *
 * @param choices The list of sizes that the camera supports for the intended output class
 * @return The optimal {@code Size}, or an arbitrary one if none were big enough
 */
private static Size chooseOptimalSize(final Size[] choices) {
    final int minSize = Math.max(Math.min(DESIRED_PREVIEW_SIZE.getWidth(),
            DESIRED_PREVIEW_SIZE.getHeight()), MINIMUM_PREVIEW_SIZE);

    // Collect the supported resolutions that are at least as big as the preview Surface
    final List<Size> bigEnough = new ArrayList();
    for (final Size option : choices) {
        if (option.equals(DESIRED_PREVIEW_SIZE)) {
            return DESIRED_PREVIEW_SIZE;
        }

        if (option.getHeight() >= minSize && option.getWidth() >= minSize) {
            bigEnough.add(option);
        }
    }

    // Pick the smallest of those, assuming we found any
    return (bigEnough.size() > 0) ? Collections.min(bigEnough, new CompareSizesByArea()) : choices[0];
}
 
Example #4
Source Project: DeviceConnect-Android   Author: DeviceConnect   File: Camera2StateMachine.java    License: MIT License 6 votes vote down vote up
/**
 * カメラがサポートしているプレビューサイズから指定のサイズに近い値を返却します.
 *
 * @param width 横幅
 * @param height 縦幅
 * @return 近い値
 */
public Size getApproximatePreviewSize(final int width, final int height) {
    List<Size> sizes = getSupportedPreviewSizes();
    if (sizes.isEmpty()) {
        return null;
    }

    Size currentSize = sizes.get(0);
    int value = Integer.MAX_VALUE;
    for (Size size : sizes) {
        int dw = width - size.getWidth();
        int dh = height - size.getHeight();
        int dist = dw * dw + dh * dh;
        if (dist < value) {
            currentSize = size;
            value = dist;
        }
    }
    return currentSize;
}
 
Example #5
Source Project: Telegram-FOSS   Author: Telegram-FOSS-Team   File: FloatingToolbar.java    License: GNU General Public License v2.0 6 votes vote down vote up
@SuppressWarnings("unchecked")
private void layoutOverflowPanelItems(List<MenuItem> menuItems) {
    ArrayAdapter<MenuItem> overflowPanelAdapter = (ArrayAdapter<MenuItem>) mOverflowPanel.getAdapter();
    overflowPanelAdapter.clear();
    final int size = menuItems.size();
    for (int i = 0; i < size; i++) {
        overflowPanelAdapter.add(menuItems.get(i));
    }
    mOverflowPanel.setAdapter(overflowPanelAdapter);
    if (mOpenOverflowUpwards) {
        mOverflowPanel.setY(0);
    } else {
        mOverflowPanel.setY(mOverflowButtonSize.getHeight());
    }
    int width = Math.max(getOverflowWidth(), mOverflowButtonSize.getWidth());
    int height = calculateOverflowHeight(MAX_OVERFLOW_SIZE);
    mOverflowPanelSize = new Size(width, height);
    setSize(mOverflowPanel, mOverflowPanelSize);
}
 
Example #6
Source Project: DeviceConnect-Android   Author: DeviceConnect   File: Camera2StateMachine.java    License: MIT License 6 votes vote down vote up
/**
 * カメラデバイスの設定を初期化します.
 */
private void initSettings() {
    try {
        String cameraId = Camera2Helper.getCameraId(mCameraManager, CameraCharacteristics.LENS_FACING_BACK);
        if (cameraId == null) {
            cameraId = Camera2Helper.getCameraId(mCameraManager, CameraCharacteristics.LENS_FACING_FRONT);
        }
        mSettings.setCameraId(cameraId);
    } catch (Exception e) {
        throw new RuntimeException("Not support.");
    }

    List<Size> pictureSizes = mSettings.getSupportedPictureSizes();
    if (!pictureSizes.isEmpty()) {
        mSettings.setPictureSize(pictureSizes.get(0));
    }

    List<Size> previewSizes = mSettings.getSupportedPreviewSizes();
    if (!previewSizes.isEmpty()) {
        mSettings.setPreviewSize(previewSizes.get(previewSizes.size() - 2));
    }
}
 
Example #7
Source Project: CameraCompat   Author: Piasy   File: Camera2Helper.java    License: MIT License 6 votes vote down vote up
@Override
protected List<PreviewSize> getSupportedSize() {
    try {
        CameraCharacteristics characteristics = mCameraManager.getCameraCharacteristics(
                getCurrentCameraId());
        StreamConfigurationMap map =
                characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
        if (map == null) {
            return Collections.singletonList(new PreviewSize(mPreviewWidth, mPreviewHeight));
        }
        Size[] supportedSize = map.getOutputSizes(SurfaceTexture.class);
        if (supportedSize == null || supportedSize.length == 0) {
            return Collections.singletonList(new PreviewSize(mPreviewWidth, mPreviewHeight));
        }
        List<PreviewSize> results = new ArrayList<>();
        for (Size size : supportedSize) {
            results.add(new PreviewSize(size.getWidth(), size.getHeight()));
        }
        return results;
    } catch (CameraAccessException e) {
        throw new CameraAccessError();
    }
}
 
Example #8
Source Project: DeviceConnect-Android   Author: DeviceConnect   File: SettingsPreferenceActivity.java    License: MIT License 6 votes vote down vote up
/**
 * カメラID に対応したカメラデバイスがサポートしているプレビューサイズのリストを取得します.
 *
 * @param cameraManager カメラマネージャ
 * @param cameraId カメラID
 * @return サポートしているプレビューサイズのリスト
 */
@NonNull
private static List<Size> getSupportedPreviewSizes(final CameraManager cameraManager, final String cameraId) {
    List<Size> previewSizes = new ArrayList<>();
    try {
        CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(cameraId);
        StreamConfigurationMap map = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
        if (map != null) {
            previewSizes = Arrays.asList(map.getOutputSizes(SurfaceTexture.class));
            Collections.sort(previewSizes, SIZE_COMPARATOR);
        }
    } catch (CameraAccessException e) {
        // ignore.
    }
    return previewSizes;
}
 
Example #9
Source Project: rtmp-rtsp-stream-client-java   Author: pedroSG94   File: Camera2ApiManager.java    License: Apache License 2.0 6 votes vote down vote up
public Size[] getCameraResolutions(Facing facing) {
  try {
    CameraCharacteristics characteristics = getCharacteristicsForFacing(cameraManager, facing);
    if (characteristics == null) {
      return new Size[0];
    }

    StreamConfigurationMap streamConfigurationMap =
        characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
    Size[] outputSizes = streamConfigurationMap.getOutputSizes(SurfaceTexture.class);
    return outputSizes != null ? outputSizes : new Size[0];
  } catch (CameraAccessException | NullPointerException e) {
    Log.e(TAG, "Error", e);
    return new Size[0];
  }
}
 
Example #10
Source Project: android-hpe   Author: beraldofilippo   File: CameraConnectionFragment.java    License: MIT License 6 votes vote down vote up
/**
 * Given {@code choices} of {@code Size}s supported by a camera, chooses the smallest one whose
 * width and height are at least as large as the respective requested values, and whose aspect
 * ratio matches with the specified value.
 *
 * @param choices     The list of sizes that the camera supports for the intended output class
 * @param width       The minimum desired width
 * @param height      The minimum desired height
 * @param aspectRatio The aspect ratio
 * @return The optimal {@code Size}, or an arbitrary one if none were big enough
 */
@SuppressLint("LongLogTag")
@DebugLog
private static Size chooseOptimalSize(
        final Size[] choices, final int width, final int height, final Size aspectRatio) {
    // Collect the supported resolutions that are at least as big as the preview Surface
    final List<Size> bigEnough = new ArrayList<Size>();
    for (final Size option : choices) {
        if (option.getHeight() >= MINIMUM_PREVIEW_SIZE && option.getWidth() >= MINIMUM_PREVIEW_SIZE) {
            Log.i(TAG, "Adding size: " + option.getWidth() + "x" + option.getHeight());
            bigEnough.add(option);
        } else {
            Log.i(TAG, "Not adding size: " + option.getWidth() + "x" + option.getHeight());
        }
    }

    // Pick the smallest of those, assuming we found any
    if (bigEnough.size() > 0) {
        final Size chosenSize = Collections.min(bigEnough, new CompareSizesByArea());
        Log.i(TAG, "Chosen size: " + chosenSize.getWidth() + "x" + chosenSize.getHeight());
        return chosenSize;
    } else {
        Log.e(TAG, "Couldn't find any suitable preview size");
        return choices[0];
    }
}
 
Example #11
Source Project: fritz-examples   Author: fritzlabs   File: BaseCameraActivity.java    License: MIT License 6 votes vote down vote up
protected void setFragment() {
    cameraId = chooseCamera();
    final CameraConnectionFragment fragment =
            CameraConnectionFragment.newInstance(
                    new CameraConnectionFragment.ConnectionCallback() {
                        @Override
                        public void onPreviewSizeChosen(final Size previewSize, final Size cameraViewSize, final int rotation) {
                            BaseCameraActivity.this.onPreviewSizeChosen(previewSize, cameraViewSize, rotation);
                        }
                    },
                    this,
                    getLayoutId(),
                    getDesiredPreviewFrameSize());

    fragment.setCamera(cameraId);

    getFragmentManager()
            .beginTransaction()
            .replace(R.id.camera_container, fragment)
            .commit();
}
 
Example #12
Source Project: DeviceConnect-Android   Author: DeviceConnect   File: Camera2StateMachine.java    License: MIT License 6 votes vote down vote up
/**
 * Configures the necessary {@link Matrix} transformation to `mTextureView`.
 * This method should be called after the camera preview size is determined in
 * setUpCameraOutputs and also the size of `mTextureView` is fixed.
 *
 * @param viewWidth  The width of `mTextureView`
 * @param viewHeight The height of `mTextureView`
 */
private void configureTransform(final int viewWidth, final int viewHeight) {
    Size previewSize = mSettings.getPreviewSize();
    int rotation = Camera2Helper.getDisplayRotation(mContext);
    Matrix matrix = new Matrix();
    RectF viewRect = new RectF(0, 0, viewWidth, viewHeight);
    RectF bufferRect = new RectF(0, 0, previewSize.getHeight(), previewSize.getWidth());
    float centerX = viewRect.centerX();
    float centerY = viewRect.centerY();
    if (Surface.ROTATION_90 == rotation || Surface.ROTATION_270 == rotation) {
        bufferRect.offset(centerX - bufferRect.centerX(), centerY - bufferRect.centerY());
        matrix.setRectToRect(viewRect, bufferRect, Matrix.ScaleToFit.FILL);
        float scale = Math.max(
                (float) viewHeight / previewSize.getHeight(),
                (float) viewWidth / previewSize.getWidth());
        matrix.postScale(scale, scale, centerX, centerY);
        matrix.postRotate(90 * (rotation - 2), centerX, centerY);
    } else if (Surface.ROTATION_180 == rotation) {
        matrix.postRotate(180, centerX, centerY);
    }
    mTextureView.setTransform(matrix);
}
 
Example #13
Source Project: android_9.0.0_r45   Author: lulululbj   File: StreamConfigurationMap.java    License: Apache License 2.0 6 votes vote down vote up
private void appendOutputsString(StringBuilder sb) {
    sb.append("Outputs(");
    int[] formats = getOutputFormats();
    for (int format : formats) {
        Size[] sizes = getOutputSizes(format);
        for (Size size : sizes) {
            long minFrameDuration = getOutputMinFrameDuration(format, size);
            long stallDuration = getOutputStallDuration(format, size);
            sb.append(String.format("[w:%d, h:%d, format:%s(%d), min_duration:%d, " +
                    "stall:%d], ", size.getWidth(), size.getHeight(), formatToString(format),
                    format, minFrameDuration, stallDuration));
        }
    }
    // Remove the pending ", "
    if (sb.charAt(sb.length() - 1) == ' ') {
        sb.delete(sb.length() - 2, sb.length());
    }
    sb.append(")");
}
 
Example #14
Source Project: fritz-examples   Author: fritzlabs   File: BaseCameraActivity.java    License: MIT License 6 votes vote down vote up
protected void setFragment() {
    cameraId = chooseCamera();
    final CameraConnectionFragment fragment =
            CameraConnectionFragment.newInstance(
                    new CameraConnectionFragment.ConnectionCallback() {
                        @Override
                        public void onPreviewSizeChosen(final Size previewSize, final Size cameraViewSize, final int rotation) {
                            BaseCameraActivity.this.onPreviewSizeChosen(previewSize, cameraViewSize, rotation);
                        }
                    },
                    this,
                    getLayoutId(),
                    getDesiredPreviewFrameSize());

    fragment.setCamera(cameraId);

    getFragmentManager()
            .beginTransaction()
            .replace(R.id.camera_container, fragment)
            .commit();
}
 
Example #15
Source Project: android_9.0.0_r45   Author: lulululbj   File: HighSpeedVideoConfiguration.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * Create a new {@link HighSpeedVideoConfiguration}.
 *
 * @param width image width, in pixels (positive)
 * @param height image height, in pixels (positive)
 * @param fpsMin minimum frames per second for the configuration (positive)
 * @param fpsMax maximum frames per second for the configuration (larger or equal to 60)
 *
 * @throws IllegalArgumentException
 *              if width/height/fpsMin were not positive or fpsMax less than 60
 *
 * @hide
 */
public HighSpeedVideoConfiguration(
        final int width, final int height, final int fpsMin, final int fpsMax,
        final int batchSizeMax) {
    if (fpsMax < HIGH_SPEED_MAX_MINIMAL_FPS) {
        throw new IllegalArgumentException("fpsMax must be at least " +
                HIGH_SPEED_MAX_MINIMAL_FPS);
    }
    mFpsMax = fpsMax;
    mWidth = checkArgumentPositive(width, "width must be positive");
    mHeight = checkArgumentPositive(height, "height must be positive");
    mFpsMin = checkArgumentPositive(fpsMin, "fpsMin must be positive");
    mSize = new Size(mWidth, mHeight);
    mBatchSizeMax = checkArgumentPositive(batchSizeMax, "batchSizeMax must be positive");
    mFpsRange = new Range<Integer>(mFpsMin, mFpsMax);
}
 
Example #16
public static ImageTransferFormatSelectorDialogFragment newInstance(boolean isEInkModeEnabled, Size resolution) {
    ImageTransferFormatSelectorDialogFragment fragment = new ImageTransferFormatSelectorDialogFragment();
    Bundle args = new Bundle();
    args.putBoolean(ARG_PARAM_ISEINKMODEENABLED, isEInkModeEnabled);
    args.putInt(ARG_PARAM_RESOLUTION_WIDTH, resolution.getWidth());
    args.putInt(ARG_PARAM_RESOLUTION_HEIGHT, resolution.getHeight());
    fragment.setArguments(args);
    return fragment;
}
 
Example #17
Source Project: DeviceConnect-Android   Author: DeviceConnect   File: RTSPPlayerActivity.java    License: MIT License 5 votes vote down vote up
protected Size calculateViewSize(int width, int height, Size maxSize) {
    int h = maxSize.getWidth() * height / width;
    if (h % 2 != 0) {
        h--;
    }
    if (maxSize.getHeight() < h) {
        int w = maxSize.getHeight() * width / height;
        if (w % 2 != 0) {
            w--;
        }
        return new Size(w, maxSize.getHeight());
    }
    return new Size(maxSize.getWidth(), h);
}
 
Example #18
Source Project: CameraDemo   Author: afei-cn   File: Camera2Proxy.java    License: Apache License 2.0 5 votes vote down vote up
private Size chooseOptimalSize(Size[] sizes, int viewWidth, int viewHeight, Size pictureSize) {
    int totalRotation = getRotation();
    boolean swapRotation = totalRotation == 90 || totalRotation == 270;
    int width = swapRotation ? viewHeight : viewWidth;
    int height = swapRotation ? viewWidth : viewHeight;
    return getSuitableSize(sizes, width, height, pictureSize);
}
 
Example #19
Source Project: fritz-examples   Author: fritzlabs   File: CameraConnectionFragment.java    License: MIT License 5 votes vote down vote up
public static CameraConnectionFragment newInstance(
        final ConnectionCallback callback,
        final OnImageAvailableListener imageListener,
        final int layout,
        final Size inputSize) {
    return new CameraConnectionFragment(callback, imageListener, layout, inputSize);
}
 
Example #20
Source Project: Mp4Composer-android   Author: MasayukiSuda   File: Mp4ComposerEngine.java    License: MIT License 5 votes vote down vote up
@NonNull
private static MediaFormat createVideoOutputFormatWithAvailableEncoders(@NonNull final VideoFormatMimeType mimeType,
                                                                        final int bitrate,
                                                                        @NonNull final Size outputResolution) {
    final MediaCodecList mediaCodecList = new MediaCodecList(MediaCodecList.REGULAR_CODECS);

    if (mimeType != VideoFormatMimeType.AUTO) {
        final MediaFormat mediaFormat = createVideoFormat(mimeType.getFormat(), bitrate, outputResolution);
        if (mediaCodecList.findEncoderForFormat(mediaFormat) != null) {
            return mediaFormat;
        }
    }

    final MediaFormat hevcMediaFormat = createVideoFormat(VideoFormatMimeType.HEVC.getFormat(), bitrate, outputResolution);
    if (mediaCodecList.findEncoderForFormat(hevcMediaFormat) != null) {
        return hevcMediaFormat;
    }

    final MediaFormat avcMediaFormat = createVideoFormat(VideoFormatMimeType.AVC.getFormat(), bitrate, outputResolution);
    if (mediaCodecList.findEncoderForFormat(avcMediaFormat) != null) {
        return avcMediaFormat;
    }

    final MediaFormat mp4vesMediaFormat = createVideoFormat(VideoFormatMimeType.MPEG4.getFormat(), bitrate, outputResolution);
    if (mediaCodecList.findEncoderForFormat(mp4vesMediaFormat) != null) {
        return mp4vesMediaFormat;
    }

    return createVideoFormat(VideoFormatMimeType.H263.getFormat(), bitrate, outputResolution);
}
 
Example #21
/**
 * In this sample, we choose a video size with 3x4 aspect ratio. Also, we don't use sizes
 * larger than 1080p, since MediaRecorder cannot handle such a high-resolution video.
 *
 * @param choices The list of available sizes
 * @return The video size
 */
private static Size chooseVideoSize(Size[] choices) {
    for (Size size : choices) {
        if (size.getWidth() == 1280 && size.getHeight() <= 720) {
            return size;
        }
    }
    Log.e(TAG, "Couldn't find any suitable video size");
    return choices[choices.length - 1];
}
 
Example #22
Source Project: OpenCvFaceDetect   Author: MRYangY   File: CameraApi.java    License: Apache License 2.0 5 votes vote down vote up
public synchronized CameraApi configCamera() {
    if (mCamera == null) {
        if (cameraApiCallback != null)
            cameraApiCallback.onNotSupportErrorTip(context.getString(R.string.init_camera_error));
        return this;
    }
    mCameraParameters = mCamera.getParameters();
    List<Integer> supportFormat = mCameraParameters.getSupportedPreviewFormats();
    for (Integer f : supportFormat
            ) {
        Log.e(TAG, "configCamera: f = " + f + "--");
    }
    List<Camera.Size> supportedPreviewSizes = mCameraParameters.getSupportedPreviewSizes();
    if (!isPreviewSizeSupport(supportedPreviewSizes)) {
        mPreviewWidth = DEFAULT_PREVIEW_WIDTH;
        mPreviewHeight = DEFAULT_PREVIEW_HEIGHT;
    }
    mCameraParameters.setPreviewFormat(ImageFormat.NV21);
    mCameraParameters.setPreviewSize(mPreviewWidth, mPreviewHeight);
    setCameraFps(mCameraParameters, fps);
    mCamera.setParameters(mCameraParameters);
    setupOrientaition(context);
    for (int i = 0; i < BUFFER_COUNT; i++) {
        mCamera.addCallbackBuffer(new byte[mPreviewHeight * mPreviewWidth * 3 / 2]);
    }
    return this;
}
 
Example #23
Source Project: fritz-examples   Author: fritzlabs   File: CameraConnectionFragment.java    License: MIT License 5 votes vote down vote up
public static CameraConnectionFragment newInstance(
        final ConnectionCallback callback,
        final OnImageAvailableListener imageListener,
        final int layout,
        final Size inputSize,
        CameraOpenListener openListener) {
    return new CameraConnectionFragment(callback, imageListener, layout, inputSize, openListener);
}
 
Example #24
Source Project: sample-tensorflow-imageclassifier   Author: androidthings   File: CameraHandler.java    License: Apache License 2.0 5 votes vote down vote up
static Size getBestCameraSize(Size[] availableCameraResolutions, Size minSize) {
    // This should select the closest size that is not too small
    Arrays.sort(availableCameraResolutions, new CompareSizesByArea()); // Sort by smallest first
    for (Size resolution : availableCameraResolutions) {
        if (resolution.getWidth() >= minSize.getWidth() &&
                resolution.getHeight() >= minSize.getHeight()) {
            return resolution;
        }
    }
    return null;
}
 
Example #25
Source Project: fritz-examples   Author: fritzlabs   File: CameraConnectionFragment.java    License: MIT License 5 votes vote down vote up
private CameraConnectionFragment(
        final ConnectionCallback connectionCallback,
        final OnImageAvailableListener imageListener,
        final int layout,
        final Size inputSize) {
    this.cameraConnectionCallback = connectionCallback;
    this.imageListener = imageListener;
    this.layout = layout;
    this.inputSize = inputSize;
}
 
Example #26
Source Project: io2015-codelabs   Author: googlesamples   File: CameraFragment.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public int compare(Size lhs, Size rhs) {
    Log.d(TAG, "compare: ");
    // We cast here to ensure the multiplications won't overflow
    return Long.signum((long) lhs.getWidth() * lhs.getHeight() -
            (long) rhs.getWidth() * rhs.getHeight());
}
 
Example #27
Source Project: bcm-android   Author: bcmapp   File: MediaConstraints.java    License: GNU General Public License v3.0 5 votes vote down vote up
private boolean isWithinBounds(Context context, MasterSecret masterSecret, Uri uri) throws IOException {
    try {
        InputStream is = PartAuthority.getAttachmentStream(context, masterSecret, uri);
        Size size = BitmapUtils.INSTANCE.getImageDimensions(is);
        return size.getWidth() > 0 && size.getWidth() <= getImageMaxWidth(context) &&
                size.getHeight() > 0 && size.getHeight() <= getImageMaxHeight(context);
    } catch (Exception e) {
        throw new IOException(e);
    }
}
 
Example #28
Source Project: android_9.0.0_r45   Author: lulululbj   File: WmDisplayCutout.java    License: Apache License 2.0 5 votes vote down vote up
public static WmDisplayCutout computeSafeInsets(DisplayCutout inner,
        int displayWidth, int displayHeight) {
    if (inner == DisplayCutout.NO_CUTOUT || inner.isBoundsEmpty()) {
        return NO_CUTOUT;
    }

    final Size displaySize = new Size(displayWidth, displayHeight);
    final Rect safeInsets = computeSafeInsets(displaySize, inner);
    return new WmDisplayCutout(inner.replaceSafeInsets(safeInsets), displaySize);
}
 
Example #29
Source Project: fritz-examples   Author: fritzlabs   File: CameraConnectionFragment.java    License: MIT License 5 votes vote down vote up
private CameraConnectionFragment(
        final ConnectionCallback connectionCallback,
        final OnImageAvailableListener imageListener,
        final int layout,
        final Size inputSize) {
    this.cameraConnectionCallback = connectionCallback;
    this.imageListener = imageListener;
    this.layout = layout;
    this.inputSize = inputSize;
}
 
Example #30
Source Project: android_9.0.0_r45   Author: lulululbj   File: OutputConfiguration.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Create an OutputConfiguration from Parcel.
 */
private OutputConfiguration(@NonNull Parcel source) {
    int rotation = source.readInt();
    int surfaceSetId = source.readInt();
    int surfaceType = source.readInt();
    int width = source.readInt();
    int height = source.readInt();
    boolean isDeferred = source.readInt() == 1;
    boolean isShared = source.readInt() == 1;
    ArrayList<Surface> surfaces = new ArrayList<Surface>();
    source.readTypedList(surfaces, Surface.CREATOR);
    String physicalCameraId = source.readString();

    checkArgumentInRange(rotation, ROTATION_0, ROTATION_270, "Rotation constant");

    mSurfaceGroupId = surfaceSetId;
    mRotation = rotation;
    mSurfaces = surfaces;
    mConfiguredSize = new Size(width, height);
    mIsDeferredConfig = isDeferred;
    mIsShared = isShared;
    mSurfaces = surfaces;
    if (mSurfaces.size() > 0) {
        mSurfaceType = SURFACE_TYPE_UNKNOWN;
        mConfiguredFormat = SurfaceUtils.getSurfaceFormat(mSurfaces.get(0));
        mConfiguredDataspace = SurfaceUtils.getSurfaceDataspace(mSurfaces.get(0));
        mConfiguredGenerationId = mSurfaces.get(0).getGenerationId();
    } else {
        mSurfaceType = surfaceType;
        mConfiguredFormat = StreamConfigurationMap.imageFormatToInternal(ImageFormat.PRIVATE);
        mConfiguredDataspace =
                StreamConfigurationMap.imageFormatToDataspace(ImageFormat.PRIVATE);
        mConfiguredGenerationId = 0;
    }
    mPhysicalCameraId = physicalCameraId;
}