Java Code Examples for android.view.View#resolveSize()

The following examples show how to use android.view.View#resolveSize() . These examples are extracted from open source projects. 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 want to check out the right sidebar which shows the related API usage.
Example 1
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    int childCount = getChildCount();
    if (childCount > 1) {
        throw new IllegalStateException("SwipeBackLayout must contains only one direct child.");
    }
    int defaultMeasuredWidth = 0;
    int defaultMeasuredHeight = 0;
    int measuredWidth;
    int measuredHeight;
    if (childCount > 0) {
        measureChildren(widthMeasureSpec, heightMeasureSpec);
        mDragContentView = getChildAt(0);
        defaultMeasuredWidth = mDragContentView.getMeasuredWidth();
        defaultMeasuredHeight = mDragContentView.getMeasuredHeight();
    }
    measuredWidth = View.resolveSize(defaultMeasuredWidth, widthMeasureSpec) + getPaddingLeft() + getPaddingRight();
    measuredHeight = View.resolveSize(defaultMeasuredHeight, heightMeasureSpec) + getPaddingTop() + getPaddingBottom();

    setMeasuredDimension(measuredWidth, measuredHeight);
}
 
Example 2
@Override
public int resolveSizeAndState(int size, int measureSpec, int state) {
    return View.resolveSize(size, measureSpec);
}
 
Example 3
/**
 * Updates the given measure spec with respect to the aspect ratio.
 *
 * <p>Note: Measure spec is not changed if the aspect ratio is not greater than zero or if
 * layoutParams is null.
 *
 * <p>Measure spec of the layout dimension (width or height) specified as "0dp" is updated
 * to match the measure spec of the other dimension adjusted by the aspect ratio. Exactly one
 * layout dimension should be specified as "0dp".
 *
 * <p>Padding is taken into account so that the aspect ratio refers to the content without
 * padding: {@code aspectRatio == (viewWidth - widthPadding) / (viewHeight - heightPadding)}
 *
 * <p>Updated measure spec respects the parent's constraints. I.e. measure spec is not changed
 * if the parent has specified mode {@code EXACTLY}, and it doesn't exceed measure size if parent
 * has specified mode {@code AT_MOST}.
 *
 * @param spec in/out measure spec to be updated
 * @param aspectRatio desired aspect ratio
 * @param layoutParams view's layout params
 * @param widthPadding view's left + right padding
 * @param heightPadding view's top + bottom padding
 */
public static void updateMeasureSpec(
        Spec spec,
        float aspectRatio,
        @Nullable ViewGroup.LayoutParams layoutParams,
        int widthPadding,
        int heightPadding) {
    if (aspectRatio <= 0 || layoutParams == null) {
        return;
    }
    if (shouldAdjust(layoutParams.height)) {
        int widthSpecSize = View.MeasureSpec.getSize(spec.width);
        int desiredHeight = (int) ((widthSpecSize - widthPadding) / aspectRatio + heightPadding);
        int resolvedHeight = View.resolveSize(desiredHeight, spec.height);
        spec.height = View.MeasureSpec.makeMeasureSpec(resolvedHeight, View.MeasureSpec.EXACTLY);
    } else if (shouldAdjust(layoutParams.width)) {
        int heightSpecSize = View.MeasureSpec.getSize(spec.height);
        int desiredWidth = (int) ((heightSpecSize - heightPadding) * aspectRatio + widthPadding);
        int resolvedWidth = View.resolveSize(desiredWidth, spec.width);
        spec.width = View.MeasureSpec.makeMeasureSpec(resolvedWidth, View.MeasureSpec.EXACTLY);
    }
}
 
Example 4
/**
 * Updates the given measure spec with respect to the aspect ratio.
 *
 * <p>Note: Measure spec is not changed if the aspect ratio is not greater than zero or if
 * layoutParams is null.
 *
 * <p>Measure spec of the layout dimension (width or height) specified as "0dp" is updated
 * to match the measure spec of the other dimension adjusted by the aspect ratio. Exactly one
 * layout dimension should be specified as "0dp".
 *
 * <p>Padding is taken into account so that the aspect ratio refers to the content without
 * padding: {@code aspectRatio == (viewWidth - widthPadding) / (viewHeight - heightPadding)}
 *
 * <p>Updated measure spec respects the parent's constraints. I.e. measure spec is not changed
 * if the parent has specified mode {@code EXACTLY}, and it doesn't exceed measure size if parent
 * has specified mode {@code AT_MOST}.
 *
 * @param spec in/out measure spec to be updated
 * @param aspectRatio desired aspect ratio
 * @param layoutParams view's layout params
 * @param widthPadding view's left + right padding
 * @param heightPadding view's top + bottom padding
 */
public static void updateMeasureSpec(
        Spec spec,
        float aspectRatio,
        @Nullable ViewGroup.LayoutParams layoutParams,
        int widthPadding,
        int heightPadding) {
    if (aspectRatio <= 0 || layoutParams == null) {
        return;
    }
    if (shouldAdjust(layoutParams.height)) {
        int widthSpecSize = View.MeasureSpec.getSize(spec.width);
        int desiredHeight = (int) ((widthSpecSize - widthPadding) / aspectRatio + heightPadding);
        int resolvedHeight = View.resolveSize(desiredHeight, spec.height);
        spec.height = View.MeasureSpec.makeMeasureSpec(resolvedHeight, View.MeasureSpec.EXACTLY);
    } else if (shouldAdjust(layoutParams.width)) {
        int heightSpecSize = View.MeasureSpec.getSize(spec.height);
        int desiredWidth = (int) ((heightSpecSize - heightPadding) * aspectRatio + widthPadding);
        int resolvedWidth = View.resolveSize(desiredWidth, spec.width);
        spec.width = View.MeasureSpec.makeMeasureSpec(resolvedWidth, View.MeasureSpec.EXACTLY);
    }
}
 
Example 5
Source Project: letv   File: ViewCompat.java    License: Apache License 2.0 4 votes vote down vote up
public int resolveSizeAndState(int size, int measureSpec, int childMeasuredState) {
    return View.resolveSize(size, measureSpec);
}
 
Example 6
/**
 * Updates the given measure spec with respect to the aspect ratio.
 *
 * <p>Note: Measure spec is not changed if the aspect ratio is not greater than zero.
 *
 * <p>Measure spec of the layout dimension (width or height) specified as "0dp" is updated
 * to match the measure spec of the other dimension adjusted by the aspect ratio. Exactly one
 * layout dimension should be specified as "0dp".
 *
 * <p>Padding is taken into account so that the aspect ratio refers to the content without
 * padding: {@code aspectRatio == (viewWidth - widthPadding) / (viewHeight - heightPadding)}
 *
 * <p>Updated measure spec respects the parent's constraints. I.e. measure spec is not changed
 * if the parent has specified mode {@code EXACTLY}, and it doesn't exceed measure size if parent
 * has specified mode {@code AT_MOST}.
 *
 * @param spec in/out measure spec to be updated
 * @param aspectRatio desired aspect ratio
 * @param layoutParams view's layout params
 * @param widthPadding view's left + right padding
 * @param heightPadding view's top + bottom padding
 */
public static void updateMeasureSpec(
    Spec spec,
    float aspectRatio,
    ViewGroup.LayoutParams layoutParams,
    int widthPadding,
    int heightPadding) {
  if (aspectRatio <= 0) {
    return;
  }
  if (shouldAdjust(layoutParams.height)) {
    int widthSpecSize = View.MeasureSpec.getSize(spec.width);
    int desiredHeight = (int) ((widthSpecSize - widthPadding) / aspectRatio + heightPadding);
    int resolvedHeight = View.resolveSize(desiredHeight, spec.height);
    spec.height = View.MeasureSpec.makeMeasureSpec(resolvedHeight, View.MeasureSpec.EXACTLY);
  } else if (shouldAdjust(layoutParams.width)) {
    int heightSpecSize = View.MeasureSpec.getSize(spec.height);
    int desiredWidth = (int) ((heightSpecSize - heightPadding) * aspectRatio + widthPadding);
    int resolvedWidth = View.resolveSize(desiredWidth, spec.width);
    spec.width = View.MeasureSpec.makeMeasureSpec(resolvedWidth, View.MeasureSpec.EXACTLY);
  }
}
 
Example 7
Source Project: fresco   File: AspectRatioMeasure.java    License: MIT License 4 votes vote down vote up
/**
 * Updates the given measure spec with respect to the aspect ratio.
 *
 * <p>Note: Measure spec is not changed if the aspect ratio is not greater than zero or if
 * layoutParams is null.
 *
 * <p>Measure spec of the layout dimension (width or height) specified as "0dp" is updated to
 * match the measure spec of the other dimension adjusted by the aspect ratio. Exactly one layout
 * dimension should be specified as "0dp".
 *
 * <p>Padding is taken into account so that the aspect ratio refers to the content without
 * padding: {@code aspectRatio == (viewWidth - widthPadding) / (viewHeight - heightPadding)}
 *
 * <p>Updated measure spec respects the parent's constraints. I.e. measure spec is not changed if
 * the parent has specified mode {@code EXACTLY}, and it doesn't exceed measure size if parent has
 * specified mode {@code AT_MOST}.
 *
 * @param spec in/out measure spec to be updated
 * @param aspectRatio desired aspect ratio
 * @param layoutParams view's layout params
 * @param widthPadding view's left + right padding
 * @param heightPadding view's top + bottom padding
 */
public static void updateMeasureSpec(
    Spec spec,
    float aspectRatio,
    @Nullable ViewGroup.LayoutParams layoutParams,
    int widthPadding,
    int heightPadding) {
  if (aspectRatio <= 0 || layoutParams == null) {
    return;
  }
  if (shouldAdjust(layoutParams.height)) {
    int widthSpecSize = View.MeasureSpec.getSize(spec.width);
    int desiredHeight = (int) ((widthSpecSize - widthPadding) / aspectRatio + heightPadding);
    int resolvedHeight = View.resolveSize(desiredHeight, spec.height);
    spec.height = View.MeasureSpec.makeMeasureSpec(resolvedHeight, View.MeasureSpec.EXACTLY);
  } else if (shouldAdjust(layoutParams.width)) {
    int heightSpecSize = View.MeasureSpec.getSize(spec.height);
    int desiredWidth = (int) ((heightSpecSize - heightPadding) * aspectRatio + widthPadding);
    int resolvedWidth = View.resolveSize(desiredWidth, spec.width);
    spec.width = View.MeasureSpec.makeMeasureSpec(resolvedWidth, View.MeasureSpec.EXACTLY);
  }
}
 
Example 8
Source Project: adt-leanback-support   File: ViewCompat.java    License: Apache License 2.0 4 votes vote down vote up
public int resolveSizeAndState(int size, int measureSpec, int childMeasuredState) {
    return View.resolveSize(size, measureSpec);
}
 
Example 9
Source Project: android-recipes-app   File: ViewCompat.java    License: Apache License 2.0 4 votes vote down vote up
public int resolveSizeAndState(int size, int measureSpec, int childMeasuredState) {
    return View.resolveSize(size, measureSpec);
}
 
Example 10
Source Project: V.FlyoutTest   File: ViewCompat.java    License: MIT License 4 votes vote down vote up
public int resolveSizeAndState(int size, int measureSpec, int childMeasuredState) {
    return View.resolveSize(size, measureSpec);
}
 
Example 11
Source Project: guideshow   File: ViewCompat.java    License: MIT License 4 votes vote down vote up
public int resolveSizeAndState(int size, int measureSpec, int childMeasuredState) {
    return View.resolveSize(size, measureSpec);
}