Как удалить Выступающие части изображений, которые больше ограничения макета в Android - PullRequest
0 голосов
/ 05 февраля 2019

Мне пришлось нарисовать эллипс и круг.Поэтому я должен добавить фотографии и текст на них.В этом разделе проблем не было, но когда я добавляю изображение в макет «Ограничение», которое больше, чем макет, это происходит.Пожалуйста, помогите мне, спасибо

First

Second

получить изображение из галереи и добавить его в контейнер.

  final Uri imageUri = data.getData();
            final InputStream imageStream = getMyActivity().getContentResolver().openInputStream(imageUri);
            final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
            imageView = new ImageView(getMyActivity());
            imageView.requestLayout();
            imageView.setAdjustViewBounds(true);
            float[] sizeImage = setSizeImage(DesignSizeFragment.transferWidth, DesignSizeFragment.transferHeight);
            imageView.setImageBitmap(selectedImage);
            imageView.setScaleType(ImageView.ScaleType.MATRIX);
            carpetContent.addView(imageView);
            setCarpetSize(DesignSizeFragment.transferWidth, DesignSizeFragment.transferHeight, DesignSizeFragment.mode);

xml:

 <android.support.constraint.ConstraintLayout
            android:id="@+id/main_content_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <ImageView
                android:adjustViewBounds="true"
                android:visibility="visible"
                android:id="@+id/iv_carpet"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scaleType="fitXY"
                android:src="@drawable/im_carpet_default_back"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent" />
        </android.support.constraint.ConstraintLayout>

оверлейный класс для создания овала:

 private void initPaints() {
    mTransparentPaint = new Paint();
    mTransparentPaint.setColor(Color.TRANSPARENT);
    mTransparentPaint.setStrokeWidth(10);
    mSemiBlackPaint = new Paint();
    mSemiBlackPaint.setColor(Color.parseColor("#FAFAFA"));
    mSemiBlackPaint.setStrokeWidth(100);
}


@Override
public void dispatchDraw(Canvas canvas) {
    mRectF = new RectF();
    myPaint = new Paint();
    myPaint.setColor(Color.BLACK);
    mPath.addOval(0,0,getWidthSize(),getHeightSize(),Path.Direction.CW);
    mPath.setFillType(Path.FillType.INVERSE_EVEN_ODD);
    canvas.drawPath(mPath, mSemiBlackPaint);
    super.dispatchDraw(canvas);
}
...