Мне пришлось нарисовать эллипс и круг.Поэтому я должен добавить фотографии и текст на них.В этом разделе проблем не было, но когда я добавляю изображение в макет «Ограничение», которое больше, чем макет, это происходит.Пожалуйста, помогите мне, спасибо
получить изображение из галереи и добавить его в контейнер.
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);
}