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

The following examples show how to use android.view.View#resolveSize() . 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 File: SwipeBackLayout.java    From AndroidAnimationExercise with Apache License 2.0 6 votes vote down vote up
@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
Source File: Utility4.java    From CSipSimple with GNU General Public License v3.0 4 votes vote down vote up
@Override
public int resolveSizeAndState(int size, int measureSpec, int state) {
    return View.resolveSize(size, measureSpec);
}
 
Example 3
Source File: PercentAspectRatioMeasure.java    From JD-Test with Apache License 2.0 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 4
Source File: BannerAspectRatioMeasure.java    From JD-Test with Apache License 2.0 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 5
Source File: ViewCompat.java    From letv with 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
Source File: AspectRatioMeasure.java    From FanXin-based-HuanXin with GNU General Public License v2.0 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.
 *
 * <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 File: AspectRatioMeasure.java    From fresco with 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 File: ViewCompat.java    From adt-leanback-support with 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 File: ViewCompat.java    From android-recipes-app with 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 File: ViewCompat.java    From V.FlyoutTest with 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 File: ViewCompat.java    From guideshow with MIT License 4 votes vote down vote up
public int resolveSizeAndState(int size, int measureSpec, int childMeasuredState) {
    return View.resolveSize(size, measureSpec);
}