Java Code Examples for android.widget.ImageView.measure()

The following are Jave code examples for showing how to use measure() of the android.widget.ImageView class. You can vote up the examples you like. Your votes will be used in our system to get more good examples.
+ Save this method
Example 1
Project: GitHub   File: RequestManagerTest.java   View Source Code Vote up 7 votes
/**
 * Tests #2262.
 */
@Test
public void clear_withNonOwningRequestManager_afterOwningManagerIsDestroyed_doesNotThrow() {
  // First destroy our Fragment/Activity RequestManager.
  requestManager.onDestroy();

  final ImageView imageView = new ImageView(context);
  imageView.measure(100, 100);
  imageView.layout(0, 0, 100, 100);
  // Then start a new load with our now destroyed RequestManager.
  concurrency.loadOnMainThread(requestManager.load(ResourceIds.raw.canonical), imageView);

  // Finally clear our new load with any RequestManager other than the one we used to start it.
  concurrency.runOnMainThread(new Runnable() {
    @Override
    public void run() {
      Glide.with(context).clear(imageView);
    }
  });
}
 
Example 2
Project: GitHub   File: RequestTest.java   View Source Code Vote up 6 votes
@Before
public void setUp() {
  MockitoAnnotations.initMocks(this);
  context = InstrumentationRegistry.getTargetContext();
  imageView = new ImageView(context);
  imageView.measure(100, 100);
  imageView.layout(0, 0, 100, 100);

  // Some emulators only have a single resize thread, so waiting on a latch will block them
  // forever.
  Glide.init(context,
      new GlideBuilder().setSourceExecutor(GlideExecutor.newUnlimitedSourceExecutor()));
}
 
Example 3
Project: RLibrary   File: UIWindow.java   View Source Code Vote up 5 votes
@Override
    protected View inflateDialogView(FrameLayout dialogRootLayout, LayoutInflater inflater) {
        LinearLayout containLayout = new LinearLayout(mActivity);
        containLayout.setOrientation(LinearLayout.VERTICAL);

        if (canCanceledOnOutside()) {
            containLayout.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    finishDialog();
                }
            });
        }

        ImageView triangleView = new ImageView(mActivity);
        triangleView.setImageResource(R.drawable.base_trigon);
        if (showTriangle) {
            triangleView.measure(View.MeasureSpec.makeMeasureSpec(1 << 30 - 1, View.MeasureSpec.AT_MOST),
                    View.MeasureSpec.makeMeasureSpec(1 << 30 - 1, View.MeasureSpec.AT_MOST));
        }

        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(-1, -2);
        LinearLayout.LayoutParams triangleParams = new LinearLayout.LayoutParams(-2, -2);

//        final int[] drawingLocation = mTmpDrawingLocation;
//        anchorView.getLocationInWindow(drawingLocation);

        final Rect displayFrame = new Rect();
        anchorView.getWindowVisibleDisplayFrame(displayFrame);

        final int[] screenLocation = mTmpScreenLocation;
        anchorView.getLocationOnScreen(screenLocation);

        int anchorWidth = anchorView.getMeasuredWidth();
        int anchorHeight = anchorView.getMeasuredHeight();

        if (screenLocation[0] + anchorWidth / 2 < displayFrame.width() / 2) {
            //左半屏
            triangleParams.gravity = Gravity.START;
            triangleParams.leftMargin = screenLocation[0] + anchorWidth / 2 - triangleView.getMeasuredWidth() / 2;
        } else {
            //右半屏
            triangleParams.gravity = Gravity.END;
            triangleParams.rightMargin = displayFrame.right - screenLocation[0] - anchorWidth / 2 - triangleView.getMeasuredWidth() / 2;
        }

        if (screenLocation[1] + anchorHeight / 2 < displayFrame.height() / 2) {
            //在屏幕上半部
            params.topMargin = screenLocation[1] + anchorHeight + offsetY;
            if (showTriangle) {
                containLayout.addView(triangleView, triangleParams);
            }
            LayoutInflater.from(mActivity).inflate(layoutId, containLayout);
            gravity = Gravity.TOP;
        } else {
            //在屏幕下半部
            LayoutInflater.from(mActivity).inflate(layoutId, containLayout);
            if (showTriangle) {
                triangleView.setRotation(180);
                containLayout.addView(triangleView, triangleParams);
            }
            params.bottomMargin = displayFrame.bottom - screenLocation[1] + offsetY;
            params.gravity = Gravity.BOTTOM;
            gravity = Gravity.BOTTOM;
        }

        dialogRootLayout.addView(containLayout, params);
        resetDialogGravity();

        if (mOnInitWindow != null) {
            mOnInitWindow.onInitWindow(this, new RBaseViewHolder(containLayout));
        }
        return containLayout;
    }
 
Example 4
Project: RLibrary   File: RTextImageLayout.java   View Source Code Vote up 5 votes
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int width = MeasureSpec.getSize(widthMeasureSpec);
    int height = MeasureSpec.getSize(heightMeasureSpec);
    int width_AT_MOST = MeasureSpec.makeMeasureSpec(width - getPaddingStart() - getPaddingEnd(), MeasureSpec.AT_MOST);
    int height_AT_MOST = MeasureSpec.makeMeasureSpec(1 << 30 - 1, MeasureSpec.AT_MOST);
    if (mImageViews.isEmpty()) {
        if (mTextView == null) {
            setMeasuredDimension(width, getPaddingTop() + getPaddingBottom());
        } else {
            mTextView.measure(width_AT_MOST, height_AT_MOST);
            setMeasuredDimension(width, getPaddingTop() + getPaddingBottom() + mTextView.getMeasuredHeight());
        }
    } else {
        int[] imageSize = null;
        if (mConfigCallback != null) {
            imageSize = mConfigCallback.getImageSize(0);
        }
        if (imageSize == null) {
            int size = MeasureSpec.makeMeasureSpec((width - space * 2) / 3 - getPaddingLeft() + getPaddingRight(), MeasureSpec.EXACTLY);
            imageSize = new int[]{size, size};
        }

        ImageView imageView = null;
        int imageCount = mImageViews.size();
        for (int i = 0; i < imageCount; i++) {
            imageView = mImageViews.get(i);

            int widthSpec = imageSize[0];
            if (widthSpec == -1) {
                widthSpec = MeasureSpec.makeMeasureSpec(width - getPaddingStart() - getPaddingEnd(), MeasureSpec.EXACTLY);
            }

            if (imageCount == 1 && isVideo()) {
                /**视频采用 16:9 的比例显示*/
                int heightSpec = MeasureSpec.makeMeasureSpec((int) ((width - getPaddingStart() - getPaddingEnd()) * 9f / 16f),
                        MeasureSpec.EXACTLY);
                imageView.measure(widthSpec, heightSpec);
            } else {
                imageView.measure(widthSpec, imageSize[1]);
            }
        }

        if (imageCount == 1) {
            if (mTextView == null) {
                setMeasuredDimension(width, getPaddingTop() + getPaddingBottom() + imageView.getMeasuredHeight());
            } else {
                if (isVideo()) {
                    //视频类型, 文本和图片采用上下结构
                    mTextView.measure(width_AT_MOST, height_AT_MOST);
                    setMeasuredDimension(width, getPaddingTop() + getPaddingBottom() + mTextView.getMeasuredHeight() + textSpace + imageView.getMeasuredHeight());
                } else {
                    //图片类型, 一张图片采用左右结构
                    mTextView.measure(MeasureSpec.makeMeasureSpec(width - imageView.getMeasuredWidth() - textSpace - getPaddingLeft() - getPaddingRight(),
                            MeasureSpec.EXACTLY), heightMeasureSpec);
                    setMeasuredDimension(width, getPaddingTop() + getPaddingBottom() + Math.max(mTextView.getMeasuredHeight(), imageView.getMeasuredHeight()));
                }
            }
        } else if (imageCount > 1) {
            if (mTextView == null) {
                setMeasuredDimension(width, getPaddingTop() + getPaddingBottom() + imageView.getMeasuredHeight());
            } else {
                mTextView.measure(width_AT_MOST, height_AT_MOST);
                setMeasuredDimension(width, getPaddingTop() + getPaddingBottom() + mTextView.getMeasuredHeight() + textSpace + imageView.getMeasuredHeight());
            }
        } else {
            setMeasuredDimension(width, getPaddingTop() + getPaddingBottom());
        }
    }
}