Добавление относительного фона макета, который можно отрисовывать для неопределенного размера макета — обрезка по центру

#android

#Android

Вопрос:

Я пытаюсь добавить фон, который можно отрисовывать, к относительному макету. Сначала я попытался установить фон самого относительного макета с помощью

 relativeLayout.setBackgroundResource(R.drawable.myImage);
  

Затем после этого я попытался создать вид изображения и сначала добавить его в свой относительный макет с помощью этого кода :

 ImageView backgroundImage = new ImageView(view.getContext());
backgroundImage.setImageResource(myImage);
backgroundImage.setScaleType(ImageView.ScaleType.CENTER_CROP);

relativeLayout.addView(backgroundImage);
  

Проблема в том, что в обоих случаях мой RelativeLayout расширяется до высоты BackgroundImage.

Чего я пытаюсь достичь, так это установить фоновое изображение размером с относительный макет после добавления всех дочерних элементов, чтобы не было растяжения и расширения за пределы относительной высоты макета, если фонового изображения вообще не было.

Я также пытался передать

 public int getHeightOfView(View contentView) {
    contentView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
    return contentView.getMeasuredHeight();
}

public int getWidthOfView(View contentView) {
    contentView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
    return contentView.getMeasuredWidth();
}

int containerWidth = getWidthOfView(relativeLayout);
int containerHeight = getHeightOfView(relativeLayout);
  

Для конечного результата я хочу программно установить фоновый рисунок для относительного макета с параметрами, которые не превышают относительную высоту и ширину макетов, как если бы фона не было (после того, как представление будет заполнено всеми другими дочерними элементами).

Каждый заполненный вид имеет неопределенную высоту и ширину. Мне нужно поддерживать соотношение сторон независимо от того, обрезается ли изображение по центру, это не проблема.

Комментарии:

1. Каков размер вашего изображения?

2. @Athira это примерно 1 кб в квадрате.